screen y tmux: que un proceso largo no muera con la conexión
Si ejecutás algo largo por SSH y se corta la conexión, el proceso muere con la sesión. screen y tmux resuelven eso: abren una sesión que vive en el servidor, independiente de tu conexión. Con tmux new -A -s trabajo la creás o volvés a ella, Ctrl+b d la suelta sin cortar nada y tmux attach -t trabajo la recupera desde cualquier máquina. En screen es lo mismo con screen -S, Ctrl+a d y screen -r.
Por qué pasa
Cuando entrás por SSH, todo lo que ejecutás cuelga de esa sesión. Si la conexión se corta —la notebook se suspende, cambia el wifi, se cae el enlace—, el sistema manda una señal de cierre y el proceso se detiene. En una importación de base de datos de media hora, eso significa empezar de nuevo, y a veces dejar la base a medio importar.
tmux, en cuatro comandos
| Comando | Qué hace |
|---|---|
tmux new -A -s trabajo | Crea la sesión "trabajo", o se conecta si ya existe. |
Ctrl+b y después d | Suelta la sesión. Lo que corre adentro sigue corriendo. |
tmux ls | Lista las sesiones abiertas en el servidor. |
tmux attach -t trabajo | Vuelve a entrar, desde esta o cualquier otra computadora. |
Con `tmux` instalado, el flujo completo es: entrar por SSH, abrir la sesión, lanzar el proceso, soltarla y cerrar la notebook.
screen, para lo mismo
screen -S trabajo # crear
# Ctrl+a y después d → soltar
screen -ls # listar
screen -r trabajo # volverSi screen -r dice que la sesión está ocupada porque quedó conectada en otro lado, screen -d -r trabajo la desconecta de allá y te la trae.
Instalarlos
apt install -y tmux screen # Debian y Ubuntu
dnf install -y tmux screen # AlmaLinuxCuándo usar cuál
tmuxes el estándar actual: divide la pantalla, se configura mejor y es lo que vas a encontrar en la documentación nueva.screenviene instalado en más lugares y alcanza de sobra si solo querés que el proceso no se muera.- Para tareas desatendidas de verdad —un script que corre todas las noches— no uses ninguno de los dos: eso es una tarea programada o un servicio de systemd.
Preguntas frecuentes
¿Qué pasa si el servidor se reinicia?
Las sesiones se pierden: viven en la memoria del servidor, no en el disco. Para algo que tiene que sobrevivir a un reinicio, el lugar es systemd.
¿Puedo dejar una sesión abierta para siempre?
Sí, y es común tener una de trabajo permanente. Tené en cuenta que los procesos que queden adentro siguen consumiendo memoria.
Entré desde otra computadora y no veo mi sesión
Fijate que estés con el mismo usuario: las sesiones son por usuario. tmux ls como root no muestra las de otro usuario.
¿Sirve para mantener un servidor de aplicación corriendo?
Funciona, pero no corresponde: si se reinicia el servidor no vuelve solo. Para eso están PM2 en Node.js o una unidad de systemd.
¿Cómo cierro una sesión que ya no uso?
Entrá con tmux attach y escribí exit, o desde afuera tmux kill-session -t trabajo. En screen, screen -X -S trabajo quit.
Seguí leyendo
Cómo programar tareas en Linux con cron y systemd
Qué significa cada campo de una línea de cron, horarios de ejemplo, los errores de siempre, cron en DirectAdmin y cómo correr un script al arrancar con systemd.
Cómo importar una base de datos MySQL grande por consola
Cuando phpMyAdmin corta la subida: cómo llevar el volcado al servidor, crear la base e importarla por consola, comprimida y con avance, y los errores comunes.
Discos y particiones en Linux: LVM, más de 2 TB y unidades externas
Agregar un disco a un VPS, ampliar un volumen LVM sin reiniciar, usar GPT para discos grandes y montar unidades NTFS o USB en un servidor.