FernandezSanSalvador

Desarrollo web, frameworks, wordpress, linux y mas.

Sistemas y redes

Screen: multiplexando terminales

Valora este post

Screen en un programa muy desconocido, pero tremendamente útil en nuestras distribuciones linux.

Su principal función es poder tener varios terminales abiertos en una única ventana.

Si accedemos a nuestro linux a través de ssh o no disponemos de entorno gráfico, entonces se vuelve imprescindible, como en el caso del acceso al nslu.

Pero veamos un ejemplo donde se ve todo el potencial de screen.

Imaginemos que deseamos descargarnos una imagen iso mediante la red bittorrent con el linksys nslu. Si accedemos a nuestro sistema de forma remota con ssh, y arrancamos el bittorrent, nos damos cuenta que hasta que no acabe de descargar no podremos cerrar la ventana de ssh, sino la descarga se interrumpe.

Lo ideal seria poder dejar el rtorrent descargando en segundo plano, desconectarse del nslu para dedicarte a otra cosa, y luego poder volver a recuperar la sesión de rtorrent mas tarde, sin que se haya interrumpido la descarga.

Y ahí es donde entra en juego el screen.

El funcionamiento es simple: arrancamos screen, ejecutamos rtorrent para descargar la iso, pulsamos Ctrl+a+d para desligar la consola y dejamos a rtorrent ejecutándose en segundo plano. Mas tarde, nos volvemos a conectar mediante ssh, recuperamos la consola y comprobamos que el rtorrent ha realizado correctamente su trabajo…

Veamos los pasos par instalarlo en nuestro linux y algunos parámetros.

Instalación de screen

  • Para instalarlo en nuestro sistema:
    # apt-get install screen

    Con esto ya está instalado screen en nuestro sistema.

Utilización

  • screen -ls : nos muestra una lista de terminales multiplexados:
    $ screen -ls There is a screen on: 19396.pts-0.LKG351F5D (09/28/09 18:20:17) (Detached) 1 Socket in /var/run/screen/S-nacho.

    En este caso, es importante indicar que “19396” es el pid del proceso, que necesitaremos mas tarde para poder recuperar el terminal.

  • screen -d 19396: recupera el terminal anterior. Si no se especifica el pid del proceso y solo hay un terminal multiplexado (screen -r), recupera ese terminal.
  • screen -D -R: si existe un terminal multiplexado, se recupera, en caso de no existir se crea uno nuevo y se informa al usuario.
    $ screen -D -R [detached from 19376.pts-0.LKG351F5D]
  • Ctrl+a+d: desliga el terminal de la pantalla actual.

En resumen un programa imprescindible si accedemos a nuestro sistema a traves de ssh en modo texto. Nos permite controlar programas ejecutandose en segundo plano y recuperarlos para ver su ejecucion desde otro ordenador (por ejemplo en el trabajo, en casa de un amigo, etc).

Deja un comentario