A veces tengo procesos de larga duración que quiero iniciar antes de irme a casa, así que creo una sesión SSH en el servidor para iniciar el proceso, pero luego quiero cerrar mi portátil e irme a casa y más tarde, después de cenar, quiero comprobar el proceso que inicié antes de salir del trabajo. ¿Cómo puedo hacer eso con SSH? Tengo entendido que si rompes tu conexión SSH también romperás tu sesión de inicio de sesión en el servidor, por lo tanto matando el proceso que se está ejecutando desde hace tiempo.
Utilice nohup
para que su proceso ignore la señal de colgado:
$ nohup long-running-process &
$ exit
Quieres usar GNU Screen. Es increíble.
ssh [email protected]
screen #start a screen session
run-a-long-process
CTRL+a , d para salir de tu sesión de pantalla
exit #disconnect from the server, while run-a-long-process continues
Cuando vuelvas a tu portátil
ssh [email protected]
screen -r #resume the screen session
A continuación, comprueba el progreso de tu largo proceso.
screen
es una herramienta muy completa, y puede hacer mucho más de lo que he descrito. Mientras estés en una sesión de pantalla, prueba ctrl+a,... para aprender algunos comandos comunes. Probablemente los más comunes son:
screen -d -r
para asegurarme de que si otro intérprete de comandos está conectado a mi sesión de pantalla, se desconectará antes de que la reanude en mi sistema actual.Lo que debes usar es screen o, mejor aún, una envoltura de fácil uso alrededor de screen llamada byobu.
Screen te permite ejecutar múltiples sesiones de terminal virtual en la misma sesión ssh. Un tutorial y páginas de ayuda están disponibles.
byobu es un wrapper que permite abrir fácilmente nuevas pantallas con una simple tecla de función en lugar de la combinación de teclas de ctrl-a. También muestra una línea de estado con todos los terminales virtuales abiertos a los que se les puede asignar un nombre.
Otra buena característica es el hecho de que todas tus pantallas pueden permanecer abiertas mientras tu conexión ssh está desconectada. Sólo tienes que conectar de nuevo a través de ssh y llamar byobu y todo es como antes.
Por fin algunas capturas de pantalla de byobu.