Programación y sistemas

Comando screen en Linux: Guía completa y ejemplos de uso

Terminal de Linux dividido en varias sesiones con el comando screen
El comando screen permite dividir la terminal y mantener sesiones activas en segundo plano.

Introducción

El comando screen en Linux es una herramienta poderosa que permite manejar múltiples sesiones de terminal dentro de una sola ventana. Es especialmente útil para administradores de sistemas y desarrolladores que necesitan ejecutar varias tareas a la vez y mantenerlas funcionando incluso después de cerrar la sesión SSH o la terminal.

Instalación

En la mayoría de distribuciones, screen está en los repositorios oficiales. Según tu sistema:

# Debian / Ubuntu y derivados
sudo apt-get install screen

# Red Hat / CentOS
sudo yum install screen

# Fedora
sudo dnf install screen

Uso básico

Iniciar una sesión de screen

Para iniciar una nueva sesión, simplemente escribe screen. Se abrirá una nueva terminal dentro de screen en la que puedes trabajar con normalidad.

Separar (detach) y reanudar (reattach) una sesión

Una de las características más útiles de screen es separar una sesión y reanudarla después. Ideal si necesitas desconectarte pero quieres que tus procesos sigan ejecutándose. Para separar la sesión activa pulsa Ctrl + A y luego D. Volverás a la terminal original y la sesión seguirá corriendo en segundo plano.

Para listar todas las sesiones disponibles:

screen -ls

Verás algo similar a esto:

There is a screen on:
    12345.pts-0.hostname    (05/19/24 12:34:56)    (Detached)
1 Socket in /run/screen/S-username.

Para reanudar una sesión concreta, usa su ID (aquí 12345):

screen -r 12345

Si la sesión aparece como (Attached) porque quedó «pegada» (p. ej. tras una caída de red), fuérzala con screen -d -r 12345.

Crear una sesión con nombre

Poner nombre a las sesiones facilita gestionarlas cuando tienes varias activas:

screen -S desarrollo

Y para reanudarla luego: screen -r desarrollo.

Dividir la pantalla

screen permite dividir la ventana en varias regiones. Estos son los atajos (todos empiezan por Ctrl + A):

  • Ctrl + A y luego S: dividir en horizontal.
  • Ctrl + A y luego |: dividir en vertical.
  • Ctrl + A y luego Tab: cambiar entre regiones.
  • Ctrl + A y luego Q: cerrar la región actual.

Gestionar ventanas dentro de screen

  • Ctrl + A y C: crear una nueva ventana.
  • Ctrl + A y N o P: ir a la ventana siguiente o anterior.
  • Ctrl + A y ": listar todas las ventanas.
  • Ctrl + A y K: cerrar la ventana actual.

Enviar comandos a una sesión desde fuera

Puedes inyectar un comando en una sesión sin entrar en ella. Por ejemplo, enviar ls a la sesión desarrollo:

screen -S desarrollo -X stuff "ls\n"

Ejemplo práctico: mantener un servidor activo

Supongamos que ejecutas un servidor y necesitas que siga funcionando tras cerrar la terminal:

  1. Inicia una sesión con nombre: screen -S servidor
  2. Dentro, arranca tu servidor (por ejemplo, uno simple de Python): python3 -m http.server
  3. Separa la sesión: Ctrl + A y luego D
  4. Cierra la terminal o desconecta el SSH: el servidor sigue activo.
  5. Cuando quieras volver: screen -r servidor

screen o tmux: ¿cuál elegir?

tmux es la alternativa moderna a screen: divide paneles de forma más cómoda, se configura mejor y tiene un desarrollo más activo. Sin embargo, screen viene preinstalado en muchos servidores y su sintaxis es más sencilla para lo básico. Si solo necesitas dejar procesos corriendo tras desconectarte, screen cumple de sobra; si vives en la terminal y quieres paneles avanzados, merece la pena aprender tmux.

Preguntas frecuentes

¿Cómo salgo de una sesión de screen?

Para separarte sin cerrarla, pulsa Ctrl + A y luego D. Para cerrarla definitivamente, escribe exit dentro de la sesión o pulsa Ctrl + D.

¿El proceso sigue si cierro la conexión SSH?

Sí, siempre que hayas separado la sesión con Ctrl + A + D (o que la conexión se corte). Lo que se ejecuta dentro de screen no depende de tu terminal, así que continúa en el servidor.

¿Cómo recupero una sesión si tengo varias?

Lista las sesiones con screen -ls y reanuda la que quieras por su ID o nombre: screen -r nombre. Si da error de que ya está abierta, usa screen -d -r nombre.

Chuleta rápida de screen

screen -S nombre     # crear sesion con nombre
Ctrl + A, D          # separar (detach)
screen -ls           # listar sesiones
screen -r nombre     # reanudar (reattach)
screen -d -r nombre  # forzar reanudar una sesion pegada
Ctrl + A, C          # nueva ventana
Ctrl + A, "          # listar ventanas
exit  /  Ctrl + D    # cerrar la sesion

Con estos atajos manejas screen en el día a día. Guárdate la chuleta y empieza a aprovechar las sesiones persistentes en tus servidores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.