Saturday, February 20, 2010

screen: un multiplexor de terminales y algo mas...


screen se puede decir que es un multiplexor de terminales, mediante su uso, se puede ejecutar cualquier numero de aplicaciones interactivas en la consola, como shells, aplicaciones basadas en ncurses, etc., y lo mejor de todo, desde una sola terminal. Esta capacidad es la que esta atrayendo a mas y mas personas a usar screen como una herramienta necesaria en la administracion/monitoreo de sistemas.

Otras de las caracteristicas importantes de screen es su capacidad de desconectarse de las diferentes ventanas, lo cual permite en casos extremos que cualquier aplicacion aun ejecutandose en alguna de ellas, continue funcionando en caso que accidentalmente cerremos la ventana de la terminal donde estamos trabajando, inclusive persiste luego de desconectarnos del sistema (logoff). Posteriormente podemos regresar y conectarnos a todas las ventanas (programas, conecciones remotas, compilacion, etc) que hayamos tenido abiertas, si es que aun no han concluido, seguiran ejecutandose normalmente.

Para instalar el programa, simplemente hagamos una busqueda del paquete screen en nuestro programa/administrador de paquetes favorito y acorde a la distribucion.

Iniciamos screen desde una terminal, ejecutando el comando: screen

Posiblemente un mensaje de ingreso a screen sea presentado, el titulo de la terminal tambien pueda que cambie para identificar que screen se esta ejecutando y se encuentra en una determinada ventana representada por un numero mayor o igual que cero.

Cada programa ejecutandose bajo screen se asocia a una ventana, y cada ventana es identificada por un numero, ejecutemos algun comando en esta ventana para poder identificarla despues cuando nos estemos trasladando entre ventanas.

Creamos otra ventana, la numero 1, para ello presionamos la combinacion en el teclado: ctrl+a c; para explicar un poco esto significa presionamos al mismo tiempo ctrl y la tecla a, y luego presionamos la tecla c (por Create)

Ahora tenemos dos ventanas, el contenido de la ventana anterior desaparecio, puesto que ahora estamos en la ventana #1, para regresar a la ventana anterior tenemos varias opciones:
- Puede usar la combinacion ctrl+a p (previous)
- la combinacion ctrl+a n (next) hasta regresar a la ventana 0
- ctrl+a ctrl+a :nos regresa a la ventana donde nos encontrabamos anteriormente
- ctrl+a N : donde N es el numero de la ventana a donde queremos movernos
- ctrl+a " : esta combinacion nos mostrara un listado de las ventanas existentes, en la cual podremos movernos haciendo uso de las teclas de flechas y seleccionando mediante Enter la ventana que deseamos utilizar.

Las ventanas que tenemos activas las podemos nombrar para identificar que accion se desarrolla en cada una de ellas, para eso podemos hacer uso de la combinacion de teclas ctrl+a A (mayuscula), una linea con el nombre de la ventana aparecera en la parte de abajo, donde podremos especificar nuestro propio nombre.

En el caso que alguna de las sesiones se quede congelada o la aplicacion se trabe, la sesion puede cerrarse mediante la combinacion ctrl-a K

Como mencionamos anteriormente screen tiene la capacidad de desconectarse de las ventanas activas y las aplicaciones o conecciones existentes en ellas persistiran, para desconectarse de screen usamos la combinacion ctrl+a d. La desconeccion se puede realizar de igual forma cerrando la terminal donde estamos ejecutando screen. Ninguna de las aplicaciones en las diferentes ventanas deberia verse afectada por esta desconeccion, para confirmar esto, abramos otra terminal, si es que cerramos la terminal que estabamos usando, y ejecutamos el comando: screen -r, veremos como las ventanas se restablecen si ejecutamos la combinacion ctrl+a ", con ellos confirmamos que todas se encuentran activas y los programas aun se encuentran funcionando, como si nunca nos hubiesemos desconectado.

Para finalizar, screen no es facil de eliminar o cerrar, para salir de screen hay que cerrar cada una de las ventanas que se tengan abiertas, ya sea cerrando el shell en cada una de ellas o la aplicacion que se este ejecutando.

Screen es una herramienta muy util para mantener el control de diferentes aplicaciones o conecciones a sistemas remotos, monitoreo, etc.; la aplicacion tiene mas opciones, asi que les dejo la curiosidad para que ustedes mismos las descubran, usando la combinacion ctrl+a ?, screen nos mostrara todas las opciones y combinaciones disponibles, y por ultimo no olvidemos que el manual siempre esta a la mano mediante el comando man screen.

Hasta la proxima.

1 comment:

Nestor Miguel Flores Estrada said...

BuenĂ­simo contenido, gracias por compartir man