Uso avanzado de Screen

Screen es un programa que nos permite ejecutar distintas sesiones (distintos programas, o distintas aplicaciones) dentro del mismo terminal de consola, y así no saturar nuestro sistema con pantallas del tipo xterm, por ejemplo. Esto es realmente útil para usuarios de GNU/Linux que gustan de usar el modo comando en su sistema, o bien para aquellos que acceden a su sistema por vía ssh, y quieren ejecutar a través de una sola sesión, varias aplicaciones al mismo tiempo. Screen resulta muy práctico cuando queremos dejar una tarea ejecutándose, que deseamos recuperar posteriormente desde otro terminal.

Podemos visualizar varias sesiones simultáneamente en una pantalla de la siguiente manera: supongamos primero que tenemos dos sesiones (una con el editor vi, y otra con el cliente de irc para modo consola irssi). Si queremos trabajarsimultáneamente en ellas dentro de la misma pantalla, podemos dividir la pantalla de la sesión en uso con la siguiente orden:
screen
Ctrl+a(S) dividimos la sesion actual de screen.

Nos aparecerá la sesión actual arriba, y luego una sesión nueva abajo, a la que debemos movernos con Ctrl+a(Ctr+­i) que indica moverse a la otra sesión de la misma pantalla. Una vez en las sesiones correspondientes (esta vez, divididas en la pantalla), podemos llamar a otras sesiones, crear nuevas, ver listados, dividir mas la pantalla, etc… Si queremos volver a modo normal (una sesión en pantalla entera) sólo tenemos que escribir Ctrl+a(Q) en la sesión que queramos tener completa.

Por último, incluimos un resumen de las funciones que hemos explicado aquí:

USO BASICO DESVINCULAR Y RESCATAR SESIONES

Ctrl+a(c) Crear sesión Ctrl+a(d) desvincular
Ctrl+a(?) muestra ayuda en la pantalla Ctrl+a(r) rescatar la última sesión (o screen ­r)
Ctrl+a(n) ir a la siguiente sesión
Ctrl+a(p) ir a la anterior sesión DIVIDIR SESIONES
Ctrl+a(a) ir a la última sesión visitada Ctrl+a(S) divide la sesión actual
Ctrl+a(“) muestra una lista de sesiones en uso Ctrl+a(Ctrl+i) cambia a la sesión contigua de la misma pantalla
Ctrl+a(#) ir a la sesión de número #
Ctrl+a(Q) deja la sesión actual como pantalla completa
Ctrl+a(‘) similar a (“) pero se ejecuta con número de sesión y enter
Ctrl+a(A) asigna un nombre a la sesión actual

COPIAR Y PEGAR

Ctrl+a([) entrar en modo copiar comienza con spacebar termina con enter
Ctrl+a(]) pegar aunque la mayoría de las veces podemos usar Ctrl+v

DEJAR UNA SESION HUÉRFANA

Para muchos realmente la gran propiedad de screen reside en su capacidad de deja sesiones huérfanas, y poder recuperarlas a gusto después. Por ejemplo, supongamos que tenemos las siguientes sesiones tras un breve list: Una sesión
0 llamada user, una sesión 1 llamada root compilation y una tercera 3 llamada user irssi. En un momento dado nos interesa dejar estas tres sesiones funcionando independientemente, y seguir usando la consola sin ellas. Podemos desvincular las sesiones que screen tiene en ese momento con la orden Ctrl+a(d).

Ctrl+a(d) desvincula la sesión actual de screen.

Al activar esta opción en la sesión activa, podemos incluso salir de nuestra terminal o sesión de usuario completamente, y la sesión que hemos desvinculado seguirá activa hasta que la rescatemos posteriormente. Si posteriormente hacemos un login como el usuario que activó el programa screen, y ejecutamos la orden screen ­ls, veremos cuántas y cuáles son las sesiones huérfanas que tenemos ejecutando. Por ejemplo:

$ screen
There is a screen on:
2328.pts­1.hostname (Detached)
1 Socket in /var/run/screen/S­user

Las ventajas de esta opción son muchas, pero entre ellas destacamos la seguridad de que las sesiones se ejecutarán independientemente de si estemos en el sistema. Un fallo o cuelgue del terminal no nos impedirá posteriormente „recoger“ la sesión y continuar con el trabajo que estábamos haciendo. Por otro lado, permite que utilicemos distintas máquinas con un login en el mismo servidor para (por ejemplo, si compilamos el kernel de una máquina por sesión remota, podemos empezar la compilación en el trabajo, y terminarla cuando lleguemos a casa al recuperar la sesión). Una opción quizás más lúdica es la de dejar nuestro usuario de irc funcionando desde casa, y „recogerlo“ desde otra estación de trabajo para seguir sin necesidad de iniciar el cliente de irc cada vez.

Es importante que el usuario que inició la sesión screen sea el que la visualice y la rescate posteriormente. Un usuario sin los permisos pertinentes no podrá ver qué sesión de screen ha dejado huérfana otro usuario, y naturalmente, tampoco podrá rescatarla. Rescatar una sesión es bastante fácil, basta ejecutar el comando screen ­r con el número de la sesión que queremos tomar.

Así por ejemplo:

$ screen ­r 2328

CONSIDERACIONES FINALES

Screen es una poderosa herramienta, un ejemplo más de profesionalidad, eficacia y servicio del software libre bajo licencia GNU. Hemos descrito aquí la particularidad que tiene el comando screen de ejecutar varias sesiones en una única consola. Además cada sesión puede nombrarse y accederse mediante opciones del teclado. Las opciones copiar y pegar están disponibles, y quizás lo más llamativo, la posibilidad de desvincular sesiones para dejarlas funcionando independientemente y volver a recogerlas posteriormente para finalizarlas, o para modificarlas desde otros entornos de trabajo.

Finalmente hemos de ser conscientes de una particularidad de screen. Aunque screen trabaja en modo consola, todos los comandos y aplicacione que puedan ser enviados por esta son válidos para ejecutarse en screen. La gran ventaja que tiene esto es que los cuelgues de terminal, o fallos en la consola, no tienen por qué afectar a las sesiones de X que hemos ejecutado bajo consola ejecutada con screen. Estos quedarían como sesiones de screen en modo húerfano, que podemos recuperar. Si ejecutamos firefox bajo screen en nuestra consola, el programa firefox seguirá viviendo tanto lo siga haciendo screen, pese a que hayamos salido de la consola que le ha dado vida.

Un último detalle antes de terminar. Precisamente, la aplicación screen se termina con el comando exit, lo cual nos envía una notificación al prompt de
que hemos terminado la sesión screen.

Visto en: http://dragonnlinux.blogspot.com.es

Anuncios

Un pensamiento en “Uso avanzado de Screen

  1. calisto dice:

    Muy bueno men, luego lo pruebo : )

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s