|OSX 10.10.5] ¿La ejecución del script se detiene cuando la pantalla está bloqueada?

Estaba ejecutando un script que lleva mucho tiempo en la Terminal.

Quería ejecutarlo sin supervisión mientras trabajaba lejos de mi MacBook, así que elegí del menú (arriba a la derecha) nombre de usuario > Ventana de inicio de sesión... , que NO es cerrar sesión, sino la pantalla de bloqueo.

Esperaba que se ejecutara el script. Cuando regresé horas más tarde y desbloqueé la pantalla (escribiendo mi contraseña), tuve que descubrir que mientras la pantalla estaba bloqueada, el script estaba en pausa todo el tiempo y simplemente continuaba donde se inició cuando desbloqueé la pantalla.

El comportamiento esperado (conocido por otros derivados de UNIX) habría sido ejecutarse mientras la interfaz de usuario estaba bloqueada y segura.

¿Cómo puedo conseguir esto?

Respuestas (2)

Tiene razón en que el Cambio rápido de usuario (activado al hacer clic en Nombre de usuarioVentana de inicio de sesión... ) no cierra la sesión. Sin embargo, suspende las aplicaciones en ejecución activa, lo que evita que las tareas intensivas (o incluso la reproducción de medios) interfieran con el uso de su sistema por parte de otro usuario.

Lo que quieres hacer en su lugar es bloquear tu pantalla usando Acceso a Llaveros .

Presione ⌘ cmd space, seguido de Keychain Accesspara iniciar la aplicación. Luego, desde la barra de menú, haga clic en Acceso a llaverosPreferenciasGeneral y marque Show keychain status in menu bar .

Aparecerá un icono de candado en el área del sistema de la barra de menú. Simplemente haga clic en Bloquear pantalla para bloquear su pantalla.

Bloquear pantalla

Según @MJK , es posible que también deba evitar que su Mac se duerma antes de alejarse.

EDITAR: con macOS High Sierra (a partir de la versión beta 5) puede lograr el mismo comportamiento de "pantalla de bloqueo" mencionado por @Phong simplemente a través del menú de la barra de estado :


Lo que creo que está sucediendo es que su computadora se duerme después de un cierto período de tiempo después de que cambió a la ventana de inicio de sesión, lo que hace que su secuencia de comandos se detenga.

Para evitar que su sistema entre en suspensión mientras se ejecuta su secuencia de comandos, puede ejecutarlo caffeinate -sen Terminal (nota: solo funciona en MacBooks si la alimentación de CA está conectada) o incluirlo en su secuencia de comandos. Para detener el comando presione CTRL+C.

La forma en que aseguro mi cuenta mientras todavía estoy conectado es habilitar la opción "solicitar contraseña" en las preferencias del sistema:

requerir contraseña

Luego, tan pronto como la pantalla (no el sistema) entra en modo de suspensión (también configurable en las preferencias), debe ingresar una contraseña para acceder a la cuenta.

También puede activar manualmente la suspensión de la pantalla presionando CTRL+SHIFT+EJECT (si su teclado tiene un botón de expulsión) o ejecutando pmset displaysleepnow.

También hay un botón de suspensión en el menú de Apple, si eso ayuda.
@DonielF De hecho, pero eso pone el sistema a dormir, lo que hace que se detenga la ejecución del script. Esto también se puede activar a través de CMD+OPTION+EJECT
¿Ese botón no pone la pantalla a dormir? Bueno saber.
@DonielF Además de poner el sistema en reposo, también pone la pantalla en reposo