Apagar la PC sin matar las sesiones SSH

14

Tengo algunos procesos pesados ​​y largos que se ejecutan en máquinas remotas de Linux. Utilizo mi computadora portátil para SSH en estas máquinas y ejecuto los procesos desde mi sofá.

PERO, cuando quiero apagar mi computadora portátil, estoy en problemas ya que los procesos remotos se eliminan.

Investigué y descubrí que "pantalla" es una gran solución para mí, ¡lo es! (Mientras no apague mi computadora portátil). ¿No hay una manera de "persistir" las sesiones de "pantalla" para que pueda cerrarla y luego volver a adjuntarla a una sesión?

Sathyajith Bhat
fuente
¿Está ejecutando la pantalla en los sistemas remotos de Linux?
Sam Miller
¿Es posible poner en segundo plano los procesos?
ennuikiller

Respuestas:

32

Parece que está ejecutando la sesión de pantalla en su computadora portátil. Luego, pasar de esa sesión de pantalla a los hosts remotos. Apagar la computadora portátil matará el proceso de la pantalla local, que a su vez mata la sesión ssh.

Lo que desea hacer es ssh desde su computadora portátil a los hosts remotos. Luego, inicie una sesión de pantalla en el host remoto. Cuando su computadora portátil está apagada, la sesión ssh morirá, pero la sesión de pantalla remota persistirá.

La próxima vez que inicie sesión en el sistema remoto, puede volver a adjuntarlo a la sesión de pantalla con "screen -r" o si tiene varias sesiones de pantalla "screen -r <pid>".

Nota: si olvidó desconectarse de la sesión de pantalla remota antes de que se elimine ssh, la sesión de pantalla puede pensar que todavía está adjunta. En este caso, primero deberá hacer "screen -dr <pid>" para separar la sesión.

erichui
fuente
44
Por cierto, si no recuerdo mal, presionar Ctrl+Aseguido de Dcuando estás dentro screendesconectará la sesión de la pantalla.
David Z
@David esto es correcto, también puedes cerrar tu terminal o sesión ssh y la pantalla permanecerá abierta. "screen -raAd" se volverá a unir.
Chris
¿Cómo puedo iniciar una sesión de pantalla en el host remoto?
estupidez
15

Se puede utilizar nohuppara iniciar un proceso que deberá seguir funcionando después de haber cerrado la sesión de una máquina. Eso podría ser lo que estás buscando.

John Smith
fuente
Para un proceso que ya se está ejecutando, puede hacer ^ Z y luego disowncrear lo que creo que es un efecto equivalente. disownEs un bashismo que puede o no estar disponible en otros proyectiles.
intuido
+1 para nohup. El problema ^Zes que detiene el proceso. No hay forma de poner en segundo plano un proceso, pero manténgalo funcionando sin problemas.
detly
6

Si desconecta la sesión remota screen, puede apagar su computadora portátil de manera segura.

chryss
fuente
No estoy seguro si es universalmente obvio que la sesión de pantalla que se está desconectando debe estar en el servidor remoto.
intuido
6

El punto de la pantalla es ejecutarlo en el servidor y separarlo con CTRL+ A+ D.

Peter Mortensen
fuente
2

Usa nohup. Otra opción para usar VNC. Crear sesión de VNC en el servidor. Luego conéctese a él cuando trabaje. (Más útil cuando el proceso largo está usando alguna GUI - un IDE por ejemplo)

Jayan
fuente
0

Si estos servidores tienen un KVM remoto de ILO / DRAC / Other, etc., puede conectarse a la consola e interactuar allí. Dado que las sesiones iniciadas son esencialmente locales, dejar la conexión de su computadora portátil no hará nada.

DHayes
fuente