it-swarm-es.tech

OS X: cómo evitar que la computadora entre en suspensión durante una sesión ssh

Cuando yo ssh en una computadora OS X en mi red, la sesión dura hasta que OS X entra en modo dormir.

¿Hay alguna manera de evitar que esto suceda durante mi sesión [~ # ~] ssh [~ # ~] , además de golpear físicamente el mouse o escribir teclas, o deshabilitar manualmente la función de suspensión?

EDITAR: La sesión ssh normalmente sería un montaje sshfs simple.

29
Stefan

Esta no es una solución lista para usar, pero posiblemente funcionará si nadie más encuentra una solución :-)

Puede manipular la configuración de administración de energía con el comando pmset. Consulte página de manual para obtener más información al respecto.

La configuración interesante que queremos manipular es dormir :

sleep: temporizador de suspensión del sistema (valor en minutos o 0 para deshabilitar)

Entonces podemos usar los siguientes comandos:

Sudo pmset sleep 25      # go to sleep after 25 minutes
Sudo pmset sleep 0       # disable sleep

Ahora tenemos que activar estos comandos después de iniciar sesión y cerrar sesión. Si recuerdo bien esto, Bash es el Shell predeterminado para Mac OS X, lo que nos lleva a estos dos archivos:

   ~/.bash_profile
          The personal initialization file, executed for login shells
   ~/.bash_logout
          The individual login Shell cleanup file, executed when a login Shell exits

Edítelos o créelos en su directorio personal y agregue los comandos apropiados. Si lo desea, guarde el valor de suspensión actual en un archivo temporal y restáurelo después.

El último problema a resolver es el indicador de contraseña de Sudo. Para darle a su usuario el permiso de invocar pmset sin ninguna contraseña, edite su/etc/sudoers con sudoedit. Debe utilizar la etiqueta NOPASSWD. Si esto es nuevo para usted, eche un vistazo a sudoers manual .

9
echox

Esto me permitió usar mi mac a través de SSH sin importar qué, siempre que el mac esté conectado a una fuente de alimentación.

System Preferences, Energy saver, Prevent computer from sleeping automatically when the display is off

Todo se apaga cuando el mac apaga su fuente de alimentación, por lo que no tiene que preocuparse por la duración de la batería.

9
Benoit Duffez

La utilidad pmset incorporada de OS X tiene una configuración que puede hacer lo que quieras. Consulte la página de manual de pmset para conocer la configuración de ttyskeepawake y la explicación adjunta.

El siguiente comando probablemente hará lo que quieras:

Sudo pmset -c ttyskeepawake 1

Los -c flag activa esta configuración específicamente cuando la computadora está funcionando con energía de CA (a diferencia de la batería o UPS), y ttyskeepawake 1 evita que la computadora entre en suspensión durante una sesión tty activa (presumiblemente, una remota). Esto permitirá permitir la suspensión si la sesión ha estado inactiva durante más tiempo que el temporizador de suspensión, pero si eso es un problema, tal vez la computadora no debería configurarse para dormir en absoluto.

6
robo

Para usar SSH para abrir un Shell en una máquina OSX remota y evitar que entre en suspensión durante la sesión SSH:

$ ssh -t [email protected] caffeinate -i bash
6
starfry

Desde Mac OS X 10.8, debería poder utilizar el comando caffeinate(8) .

Tratar caffeinate -s ssh server.example.com.

5
200_success

Agregué el siguiente script en .bash_profile

if expr "$(ps -o comm= $PPID)" : '^sshd:' > /dev/null; then
  caffeinate -s $Shell --login
  exit $?
fi

Si el proceso es hijo directo de un demonio ssh, ejecute un mismo Shell a través del comando caffeinate (8) para evitar que el sistema entre en suspensión durante la sesión ssh.

3
Kubo Takehiro

Una búsqueda en la web de mac prevent sleep da como resultado una gran cantidad de buena información sobre las utilidades y los trucos que puede utilizar.

Sin embargo, en su situación, sospecho que lo que realmente desea hacer es tener una sesión ssh separada que ejecute un programa de línea de comandos muy simple que evite que la Mac entre en suspensión. Apple proporciona el código fuente completo en Preguntas y respuestas técnicas 1160: Prevención del sueño . (Desafortunadamente, esta página está rota en el sitio de Apple en este momento, pero puede obtener una copia del caché de Google).

No he probado para ver si este programa se puede ejecutar correctamente desde una sesión ssh, pero parece que podría hacerlo.

Tenga en cuenta que las implementaciones de sshfs normalmente no permanecen registradas en el sistema remoto todo el tiempo y solo ejecutan una sesión cuando quieren un archivo o directorio. Por lo tanto, necesita una sesión ssh separada, que se ejecute en una ventana de terminal minimizada, para ejecutar el programa de insomnio.

La ventaja de este enfoque es que no necesita usar Sudo ni meterse con la configuración de administración de energía del sistema.

2
Neil Mayhew