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
caffeinate
comando.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
nohup
Si 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.out
Las rutas en los ejemplos son opcionales si el script está en su ruta y desea que la salida del script se escriba
output.out
en 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,
nohup
proporciona 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 noidle
para evitar dormir mientras sepmset
está ejecutando. Desafortunadamente, requiere una ventana de Terminal separada conpmset
ejecución en ella. Sin embargo, la otra opción,caffeinate
solo 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 &
para volver apmset
escribirfg
.fuente
pmset
en segundo plano utilizandopmset noidle &
y, por lo tanto, continuar utilizando el símbolo del sistema actual. Escribafg
parapmset
volver, en cuyo punto puede Ctrl + C!pmset noidle
muy 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. Usarssh
directamente en lugar de/bin/ssh
también debería funcionar.Resultados: su sistema no dormirá mientras el
ssh
comando 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