¿Cómo evitar que Mac se duerma desde la línea de comandos?

10

Tengo un script de larga ejecución en la computadora remota.

No quiero terminar mi sesión ssh, y necesito ingresarla en un script de shell.

¿Cómo es posible evitar que mi Mac caiga en suspensión desde la línea de comandos?

    
pregunta kobame 30.08.2012 - 22:44

6 respuestas

18

En Mountain Lion puedes usar el comando caffeinate .

caffeinate -u -t 1000

evitará el sueño inactivo durante 1000 segundos.

    
respondido por el Nemo 30.08.2012 - 22:46
11

La solución a este problema es no mantener al cliente (su Mac) despierto. El uso de enfoques como este no es confiable. ¿Qué pasa si se pierde la conexión de red? Incluso si tu Mac está despierta, el script se detendrá.

Usa nohup

Si su secuencia de comandos de larga duración se llama eternity.sh , intente lo siguiente:

nohup /path/to/eternity.sh > /path/to/output.out &

Ahora incluso puedes cerrar la conexión y tu script continuará ejecutándose . El & pone en proceso el proceso para que pueda mantener la conexión abierta e ingresar comandos. Ver cualquier salida de su script a través de:

tail -f /path/to/output.out

Las rutas en los ejemplos son opcionales si el script está en su ruta y desea que la salida del script se escriba en output.out en el directorio actual.

Administro los scripts que se ejecutan durante días a la vez. Scripts como estos deben ser separados de la terminal. Afortunadamente, nohup proporciona una invocación de comandos fácil de recordar para lograr esto: piense en no hangup .

    
respondido por el ephsmith 31.08.2012 - 01:40
7

Otra opción es pmset . Use el comando pmset noidle para evitar la suspensión mientras se esté ejecutando pmset . Desafortunadamente, requiere una ventana de Terminal separada con pmset ejecutándose en ella. Sin embargo, la otra opción, caffeinate , solo le permite establecer un cierto tiempo . Entonces, es cuestión de elegir si desea abrir una segunda sesión de SSH o lidiar con una restricción de tiempo.

Editar: según comentario de binarybob , puedes ejecutarlo en el fondo de esta manera: pmset noidle & Para volver a pmset type fg .

    
respondido por el daviesgeek 30.08.2012 - 23:52
6
caffeinate -i -s /bin/ssh ...

Explicación:

-i - Prevenir el sueño inactivo.

-s - Evita la suspensión del sistema (completamente, incluso si cierra la tapa). Nota: solo funciona con la alimentación de CA.

/bin/ssh - Solo sigue escribiendo el comando que quieres ejecutar. El uso de ssh directamente en lugar de /bin/ssh también debería funcionar.

Resultados: su sistema no se suspenderá mientras se ejecute el comando ssh .

    
respondido por el bogdansrc 31.08.2012 - 00:06
1

Si estás buscando la opción nuclear como lo estaba yo:

sudo systemsetup -setcomputersleep Never

- Establecer o desactivar el modo de espera debido a la inactividad del sistema Mac desde la línea de comandos en OS X

    
respondido por el rstackhouse 24.06.2015 - 23:51
-3

El protector de pantalla de StarMessage ( enlace ) también tiene la opción de mantener el MAC activo durante 2 horas, 8 horas o permanentemente. Esta forma de desactivar el sueño MAC es mucho más fácil que la cafeína.

    
respondido por el StarMessage Screensaver 28.02.2016 - 14:02

Lea otras preguntas en las etiquetas