Se inicia una actualización, una copia de seguridad o un comando largo a través de SSH, y luego se pierde la conexión. Si el comando se estaba ejecutando en una terminal normal, suele ser porque ya ha terminado. Pantalla bajo Linux Esto evita precisamente este tipo de sorpresas desagradables: la sesión permanece activa en el servidor, incluso si desaparece su terminal local.
Lo uso principalmente para tareas sencillas donde quiero mantener el control sin crear un sistema complejo. No es tan práctico como tmux para trabajar todo el día en varios paneles, pero para desconectar y reanudar un comando de administrador, screen sigue funcionando muy bien.

Instale la pantalla si el comando no está disponible.
En muchos servidores, screen no está instalado por defecto. Compruebe primero:
pantalla --versión
Si falta el comando, instale el paquete utilizando el gestor de paquetes de su distribución.
sudo apt update
sudo apt install screen
sudo pacman -S pantalla
Antes de iniciar una operación delicada, abra una sesión SSH estable y, si es posible, mantenga una conexión de respaldo secundaria. Screen minimiza los daños cuando la terminal falla, pero no reemplaza una consola de emergencia si pierde la conexión de red o SSH.
Cree una sesión de pantalla llamada
Evita las sesiones anónimas. Con un nombre claro, sabrás inmediatamente qué procesos siguen ejecutándose en el servidor.
pantalla -S guardar
Llegarás a una nueva terminal. Desde allí, ejecuta tu comando como de costumbre. Por ejemplo:
rsync -avh /srv/data/ /mnt/backup/data/
Lo importante es que este comando se ejecuta dentro de la sesión de screen, no directamente en la terminal SSH. Si el ordenador entra en modo de suspensión o se interrumpe la conexión, la sesión de screen puede continuar en el servidor.
Desconectar la sesión sin detener el comando
Para salir de la sesión de pantalla sin detener lo que se esté ejecutando en ella, utilice el siguiente acceso directo:
Control+TIENE- Entonces
D
La pantalla suele mostrar un mensaje como este. A continuación, regresas a tu terminal habitual. El comando ejecutado en screen continúa en ejecución.
Ten cuidado de no golpear salida Si solo quieres desvincular la sesión. salida Cierra la ventana en pantalla. Si era la última ventana activa, la sesión finaliza.
Listar y reanudar una sesión de pantalla
Para ver las sesiones existentes:
pantalla -ls
A continuación, puede reanudar la sesión por nombre:
pantalla -r guardar
Si solo existe una sesión, pantalla -r A menudo, eso es suficiente. En un servidor compartido o en una máquina donde se ejecutan varias tareas, prefiero usar el nombre. Es menos arriesgado que reanudar la sesión equivocada en el momento equivocado.
Si la pantalla indica que la sesión aún está conectada en otro lugar, por ejemplo, después de una desconexión SSH mal detectada, utilice:
pantalla -d -r copia de seguridad
Esta opción primero desconecta la conexión anterior y luego vuelve a conectar la sesión en tu terminal actual. Es práctica, pero úsala con precaución en una cuenta compartida: podrías desconectar a alguien que estuviera trabajando en esa sesión.
En algunos casos, es posible que desee ver la misma sesión desde dos dispositivos. Por ejemplo, una consola abierta en un monitor y otra en su computadora portátil.
pantalla -x guardar
Ambos terminales comparten la misma sesión. Todos ven lo mismo y escriben en la misma consola. Esto resulta útil para una intervención guiada, pero mucho menos si dos personas escriben simultáneamente sin coordinarse.
Cómo cerrar correctamente una sesión de pantalla
Cuando el comando se complete, salga de la consola abierta en screen:
salida
También puedes usar Control + DUna vez cerrada la última ventana, la sesión de pantalla desaparece de la lista.
Para forzar la finalización de una sesión con nombre desde fuera de la red, utilice:
pantalla -S guardar -X salir
Asegúrese de su elección. Este comando cierra la sesión de pantalla y todo lo que se esté ejecutando en ella. Al realizar una copia de seguridad, migración o actualización, siempre prefiero reanudar la sesión, comprobar su estado actual y detenerla solo si es necesario.
Errores comunes en la administración
La primera trampa es raízsi lanzas pantalla sudoLa sesión pertenece a root. Por lo tanto, a menudo necesitará reanudarla con sudo screen -rEn la mayoría de los casos, prefiero iniciar la pantalla con mi usuario normal y luego usar sudo Solo para los pedidos que lo requieran.
El segundo error común es confundir `screen` con un gestor de servicios. Un comando que se ejecuta en `screen` permanece vinculado a una sesión interactiva. Para un servicio persistente, un demonio o una tarea programada, utilice systemd, un temporizador o un servicio dedicado. (Véase el artículo sobre…) temporizadores del sistema es más adecuado para este tipo de necesidad.
El tercer inconveniente es usar un comando sin un registro. Si está ejecutando una tarea importante, redirija la salida a un archivo o use una herramienta de registro. Luego puede monitorear los resultados con cola en Linux.
./script-maintenance.sh > maintenance.log 2>&1
Luego puedes desconectar la pantalla, volver más tarde y releer lo que sucedió, incluso si la pantalla se desplazó demasiado rápido.
Screen, nohup o tmux: ¿cuál elegir?
Para un comando no interactivo que simplemente necesita continuar después de que se cierre SSH, nohup Eso puede ser suficiente. Ejecutas el comando, guardas el resultado en un archivo y no necesitas usar una interfaz.
Para una sesión de trabajo adecuada con múltiples ventanas, paneles, un diseño más moderno y mejor ergonomía, tmux suele ser más agradable. Pero en un servidor minimalista, screen sigue estando disponible, es simple y muy eficiente. Para una intervención breve, no me molesto en usar nada más. pantalla -S nombreEjecuto el comando, me desconecto y luego regreso para verificar.
La comprobación que debe realizarse antes de cerrar SSH
Antes de cerrar su sesión SSH, tómese diez segundos para verificar que screen reconoce correctamente su sesión:
pantalla -ls
Si tu sesión aparece como desconectada, puedes salir de SSH con mayor tranquilidad. Si no aparece, no des por sentado que `screen` está protegiendo tu comando. Vuelve a la terminal, comprueba dónde iniciaste la tarea y corrígelo antes de cerrar la conexión.
Documentación pantalla(1) y el Manual de pantalla GNU detallar todas las opciones. Para uso administrativo rutinario, recuerde cuatro comandos en particular: crear con pantalla -Ssepararse con Control + TIENE Entonces D, reanudar con pantalla -r pantalla -ls.