sábado, 10 de noviembre de 2007

screen, una maravilla de línea de comandos

Si eres de los que trabaja diariamente con terminales Linux remotas a través de por ejemplo clientes SSH, tal vez muchas veces hayas tenido la necesidad de tener muchas ventanitas o pestañas abiertas para una misma sesión para ejecutar varios programas y mas aún, tener que depronto irte del PC actual sin querer cerrar todos esos programas remotos y retomar el trabajo luego tal como lo dejaste en cualquier otro lado.

Todo esto lo puedes conseguir sin usar nada mas que tu cliente de terminal remota preferido (putty por ejemplo) y una aplicación instalada en tu servidor Linux (que suele venir instalada en las distribuciones actuales!).

Esta útil aplicación se llama screen. Probablemente si escribes screen ya en tu consola, te va a iniciar.



Lo primero que vez al iniciar el programa es una pantalla de inicio con la licencia, versión, todo aquello, presionas [Enter] y todo vuelve a lo normalidad, como si no hubiera pasado nada. Puedes comenzar a trabajar en esa consolo normalmente, por ejemplo iniciando un 'top'.


Pero ahora, si quieres inciar otro programa, pero quieres dejar este corriendo y por ejemplo mirarlo periódicamente, no tienes que abrir otra pestaña o ventana del cliente. Con la combinación [(Ctrl+A) + C ] creas una nueva 'consola virtual' (C de Create) en la que puedes trabajar normalmente. Digamos que en esa nueva consola, dejas un 'tail'.


Si quieres moverte entre las consolas, solo debes entrar la siguiente combinación: [(Ctrl+A) + N] (N de Next).

Ahora digamos que debes irte del PC en donde estás trabajando y no quieres dejar tus consolas abiertas a la vista del próximo que llegue, pero tampoco quieres cerrar todos estos programas que estás ejecutando en el servidor remoto. Para esto ejecutas la siguiente orden: screen -d (d de detach).


Cuando esto pasa, ves el mensaje "[remote detached]" en la salida y te puedes desconectar del todo tranquilamente.

Cuando quieras retomar tu trabajo desde cualquier lugar, solo debes iniciar sesión normalmente en el servidor. Con la órden screen -ls puedes listar todas las sesiones de screen que tienes iniciadas (en el caso del ejemplo, solo debe ser una: la que tiene el top y el tail, pero pueden ser varias).



Si solo tienes una, como en este caso, con solo escribir la siguiente orden, puedes retomarla como la dejaste la última vez: screen -r (r de reattach).



screen tiene muchas otras funciones que puedes explorar por otros medios.

Tip: si estás acostumbrado a usar [Ctrl+A] para volver al inicio de línea en bash, cuando estés con screen, debes ejecutar [Ctrl+A+A].






No hay comentarios.: