El comando SCREEN

Son las 5:45 pm, estas en tu trabajo terminando las últimas tareas y guardando tus cosas, pero a último momento tu cabeza hace un click y recuerda que mañana a primera hora hay que tener listo un compilado ejecutable, que demora al menos unos 30 minutos en uno de los servidores.

— ¡Diantres! ¡recórcholis!

A no desesperar, por suerte existe un comando llamado screen que puede ayudarnos y hacer que volvamos temprano a casa.

¿Qué hace ‘screen’?

Es un programa que multiplexa una terminal física, esto es, permite que en una sola sesión de bash (o cualquier otro intérprete) podamos tener múltiples terminales abiertas. Una de las características más interesantes es que permite desligar el proceso de la sesión actual y es esta la característica que más nos interesa para irnos temprano.

Ejecutando ‘screen’ (¿Como me voy más temprano?)

Muy fácil, son 3 simples pasos.

1- Ejecutar el programa con el comando:

$ screen

2- En este punto tenemos una terminal, por lo que podemos poner a correr el comando que sabemos tarda mucho tiempo.

3- Tocar Ctrl+a y luego la letra d.

Al terminar el paso 3 debe decirnos

[detached]

y volvemos a la terminal “nativa” fuera de screen.

En este punto ya podrías ir apagando tu pc, llamando al delivery y pidiendo el ascensor porque tu comando largo ya esta siendo ejecutado fuera de la sesión en el servidor remoto.

Recuperando la sesión

Cuando volvemos al otro día, después del café, entramos al servidor remoto y corremos el siguiente comando:

$ screen -r

Y con esto volvemos a la sesión donde vemos las últimas lineas que imprimió en la pantalla el último comando que corrimos.

Para saber mas…

Este comando es mucho más de lo que cuento en este artículo, para saber más, recomiendo leer el manual de GNU de screen.

Además dejo algunas páginas con ejemplos que me resultaron útiles:

http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals

https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to