Día 12 - Dejar corriendo un comando sin sesión activa 1 - screen

 


Querido diario:
Hoy es el doceavo día en el frente tecnológico, he tenido la suerte de que me toque instruir a los nuevos reclutas en el arte de la supervivencia en la consola. Como encargado del nodo informático es mi honor mantener a los nuevos reclutas en condiciones idoneas para luchar en las trincheras digitales.
La mañana comenzo al despuntar el sol, los jovenes estaban ansiosos con sus editores de texto listos para tomar apuntes si era necesario. Mi rostro iluminado por la pantalla ya había decidido que comando enseñar este día.
Los reuni bajo la luz de mi vieja PC con Ubuntu 22.04 y les dije "Screen es como un refugio subterraneo para sus comandos, que les permitira correr en segundo plano tareas de vital importancia en maquinas remotas y mantendra a salvo su ejecución aunque la conexión con la maquina remota se corte." 

SCREEN

Screen es una herramienta de multiplexación de terminales en sistemas Unix y Linux. Permite a los usuarios crear múltiples sesiones de terminal dentro de una sola ventana o sesión. Es decir, con una sola conexión a una maquina remota puedo tener varias terminales corriendo en paralelo sobre esa conexión. Además si la conexión falla o se corta, las terminales de screen siguen corriendo en segundo plano hasta terminar su ejecución. Esto es útil para dejar corriendo backups, monitoreos o para mover archivos grandes de un lugar a otro.

Screen lamentablemente no está instalado por defecto en las distribuciones GNU/Linux pero existe en practicamente todos los repositorios oficiales. Para instalarlo solo hace falta colocar:


sudo apt-get update
sudo apt-get install screen -y

Listo con eso ya tendremos screen en nuestra maquina preferida.

Cuando ejecutas screen, se inicia una nueva sesión de terminal. Puedes pensar en ella como una especie de “contenedor” para tus comandos. Dentro de una sesión de screen, puedes crear múltiples ventanas. Cada ventana es como una pestaña en tu navegador, y puedes cambiar entre ellas fácilmente. Para crear una nueva ventana debes presionar la siguiente combinacion de teclas

Ctrl+A y luego presionar C

Para moverte entre las ventanas de terminal que has creado invocas a screen con Ctrl+A y luego puedes presionar N para la siguiente ventana o P para la ventana anterior. Puedes tener comando totalmente distintos en cada ventana corriendo en simultaneo sin ningun problema.

Si necesitas desconectarte temporalmente de tu sesión en screen solo tienes que invocar a screen con Ctrl+A y despues presionar D. Esto enviará al segundo plano a la sesión screen junto con todas las ventanas, no cerrara ninguno de los procesos en ejecución, los cuales estarán esperando por tí siempre y cuando la maquina no sea reiniciada.

Para volver a conectarte solo debes correr el comando screen de la siguiente manera.

screen -r

Ejemplos

Ejecutar un script en segundo plano sin necesidad de estar en la terminal mientras se ejecuta.

screen
./mi_script_largo.sh
Ctrl + A, D

Monitorear varios logs al mismo tiempo

screen
tail -f /var/log/syslog
Ctrl + A, C
tail -f /var/log/auth.log
Ctrl + A, N

"Eso es todo por hoy reclutas, nos vemos la proxima"


Comentarios