Cuando ejecutamos un proceso largo en un servidor remoto (una compilación, una migración de
base de datos, una copia de seguridad, etc.), si se cae la conexión SSH el proceso muere con ella.
screen resuelve este problema creando sesiones de terminal que siguen vivas aunque
cerremos la conexión.
Para iniciar una sesión nueva:
screen
Una vez dentro, podemos ejecutar cualquier comando como si fuera un terminal normal. Para
desconectarnos de la sesión sin terminarla usamos Ctrl+a y luego d (detach). El proceso
seguirá ejecutándose en segundo plano.
Para ver las sesiones activas:
screen -ls
Para volver a conectarnos a una sesión existente:
screen -r
Si hay varias sesiones, screen -ls muestra sus identificadores y podemos especificar a
cuál reconectarnos:
screen -r 12345
También podemos nombrar las sesiones para identificarlas más fácilmente:
screen -S backup
Y reconectar por nombre:
screen -r backup
screen es especialmente útil combinado con tareas como
rsync o
mysqldump cuando las
transferencias son grandes y la conexión puede interrumpirse.