Tengo un script de larga ejecución en la computadora remota.
No quiero terminar mi sesión ssh, y necesito ingresarlo en un script de shell.
¿Cómo es posible evitar que mi Mac se quede dormida desde la línea de comandos?
sleep-wake
command-line
Kobame
fuente
fuente

Respuestas:
En Mountain Lion puedes usar el
caffeinatecomando.evitará la inactividad durante 1000 segundos.
fuente
La solución a este problema es no mantener despierto al cliente (su Mac). Usar enfoques como este son poco confiables. ¿Qué sucede si se pierde la conexión de red? Incluso si tu Mac está despierta, el script se detendrá.
Utilizar
nohupSi se llama a su script de larga ejecución
eternity.sh, intente lo siguiente:nohup /path/to/eternity.sh > /path/to/output.out &Ahora incluso puede cerrar la conexión y su script seguirá ejecutándose . Los
&antecedentes del 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.outLas rutas en los ejemplos son opcionales si el script está en su ruta y desea que la salida del script se escriba
output.outen el directorio actual.Administro scripts que se ejecutan durante días a la vez. Las secuencias de comandos como estas deberían separarse de la terminal. Afortunadamente,
nohupproporciona una invocación de comandos fácil de recordar para lograr esto: no piense en un bloqueo .fuente
man screen.Otra opción es pmset . Use el comando
pmset noidlepara evitar dormir mientras sepmsetestá ejecutando. Desafortunadamente, requiere una ventana de Terminal separada conpmsetejecución en ella. Sin embargo, la otra opción,caffeinatesolo le permite establecer un tiempo determinado . Por lo tanto, se trata de elegir si desea abrir una segunda sesión SSH o lidiar con una restricción de tiempo.Editar: de acuerdo con el comentario de binarybob , en realidad puede ejecutarlo en segundo plano de esta manera:
pmset noidle ¶ volver apmsetescribirfg.fuente
pmseten segundo plano utilizandopmset noidle &y, por lo tanto, continuar utilizando el símbolo del sistema actual. Escribafgparapmsetvolver, en cuyo punto puede Ctrl + C!pmset noidlemuy agradable cuando tienes una computadora de escritorio que sirve una notebook IPython y una laptop que se conecta de forma remota.Explicación:
-i- Prevenir el sueño inactivo.-s- Evite la suspensión del sistema (completamente, incluso si cierra la tapa). Nota: solo funciona con corriente alterna./bin/ssh- Solo sigue escribiendo el comando que deseas ejecutar. Usarsshdirectamente en lugar de/bin/sshtambién debería funcionar.Resultados: su sistema no dormirá mientras el
sshcomando se esté ejecutando.fuente
Si está buscando la opción nuclear como yo estaba:
- Establecer o deshabilitar la suspensión debido a la inactividad del sistema Mac desde la línea de comandos en OS X
fuente
El protector de pantalla StarMessage ( http://starmessagesoftware.com/moonscreensaver/ ) también tiene la opción de mantener el MAC despierto durante 2 horas, 8 horas o permanencia. Esta forma de desactivar el sueño MAC es mucho más fácil que la cafeína.
fuente