Crear sesiones de terminal persistentes con screen

última modificación:

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.