23 votos

¿Cómo evitar el sueño de Mac desde línea de comandos?

Tengo una larga secuencia de comandos en el equipo remoto.

No quiero terminar mi ssh sesión y necesita entrar en un shell script.

¿Cómo es posible evitar que mi Mac de caer en sueño de la línea de comandos?

32voto

Nemo Puntos 294

En Lion de montaña se puede utilizar el caffeinate comando.

caffeinate -u -t 1000

evitará el sueño inactivo durante 1000 segundos.

15voto

ephsmith Puntos 1627

La solución a este problema es no mantener al cliente (el Mac) despierto. El uso de los enfoques de este tipo son poco fiables. ¿Qué sucede si la conexión de red se pierde? Incluso si su Mac está despierto, el script se detendrá.

Uso nohup

Si su tiempo de ejecución del script se llama eternity.sh, pruebe lo siguiente:

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

Ahora usted puede incluso cerrar la conexión y el script seguirá funcionando. El & antecedentes el proceso de modo que usted puede mantener la conexión abierta y a introducir los comandos. La vista de cualquier salida de la secuencia de comandos a través de:

tail -f /path/to/output.out

Los caminos en los ejemplos son opcionales si el script está en su camino y desea salida de secuencia de comandos se escriben en output.out en el directorio actual.

Me administrar secuencias de comandos que se ejecutan durante días a la vez. Los guiones como estos deben ser separados de la terminal. Afortunadamente, nohup proporciona un fácil de recordar invocación de comandos para lograr esto ... creo que no hangup.

12voto

Julius Canute Puntos 26

Otra opción es pmset. Utilice el comando pmset noidle para evitar que duerma mientras pmset está ejecutando. Por desgracia, se requiere una ventana de Terminal con pmset que se ejecutan en él. Sin embargo, la otra opción, caffeinate, sólo se le permite establecer un cierto tiempo. Así que es una cuestión de elegir si desea abrir una segunda sesión de SSH, o lidiar con un tiempo de retención.

Edit: de Acuerdo a binarybob el comentario, en realidad se puede ejecutar en segundo plano como este: pmset noidle & para volver A pmset tipo fg.

7voto

user24967 Puntos 11
caffeinate -i -s /bin/ssh ...

Explicación:

-i-Evitar el sueño inactivo.

-s-Evitar dormir de sistema (en su totalidad, incluso si cierras la tapa). Nota: solo funciona en corriente alterna.

/bin/sshssh/bin/sshtambién debería funcionar.

sshse ejecuta el comando.

2voto

rstackhouse Puntos 111

Si usted está buscando la opción nuclear como estaba:

sudo systemsetup -setcomputersleep Never

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X