Bueno, ¿qué tal las vacaciones? Espero que las hayáis disfrutado :) Yo he estado entretenido investigando algunas cosillas que espero poder publicar si tengo tiempo.
En este post vamos a hablar de screen
. Es una herramienta muy útil para hacer una gestión remota pudiendo desconectar y volver a reconectar sin parar el proceso que hemos lanzado. Obviamente, todo esto que digo lo digo sin usar cosas como segundo plano, NOHUP, redirecciones y sin que sean demonios. Por ejemplo, imaginémonos que estamos conectados a un equipo remoto y decidimos compilar KDE, no vamos a estar con la terminal viendo pasar todas las líneas de compilación.
Menos palabrería y veamos un ejemplo práctico. Lo primero es tener dos máquinas (por lo menos), una hará de equipo remoto (rf1
) y la otra de equipo local (mine
). Obviamente, ambas máquinas deberían estar conectadas de alguna manera: red local, modem, etc. Y lo segundo es tener el software screen
instalado, no os preocupéis mucho ya que se encuentra en todas las distribuciones (por lo menos se encuentra en todas las «grandes») y suele instalarse por defecto. Ahora que tenemos todo preparado, comencemos con el ejemplillo.
Empecemos tecleando el comando en pantalla:
mine:~> screen
Nos aparecerá un texto en el que se nos comunica la licencia (GPL) y otras cosillas e indicando que pulsemos la barra de espacio para continuar o bien [Enter] para salir. Si habéis pulsado [Espacio] no notaréis nada nuevo, vamos que la pantalla se ha «limpiado» y os habéis quedado como antes. Paz y armonía, no os estoy timando, si listáis los procesos que se están ejecutando en vuestro sistema veréis que sí se está ejecutando:
Si os aparece algo por el estilo es que todo va bien. Continuemos. Bueno, mejor no continuamos, vamos a ver cómo funciona screen
. screen
funciona mediante «teclas rápidas», «atajos de teclado», «combinaciones de teclas», es decir, pulsando combinaciones de teclas. Os pongo unas cuantas a continuación:
[Ctrl]+[D]
-> Cierra la terminal, si es la única que tenemos bierta, salir de screen
[Ctrl]+[A],[C]
-> Nos permite abrir más terminales virtuales
[Ctrl]+[A],[N]
-> Nos permite cambiar de una terminal a otra
[Ctrl]+[A],[Shift]+[C]
-> Nos permite renombrar el terminal, por defecto todos se llaman bash
[Ctrl]+[A],[D]
-> Nos permite cerrar la terminal sin cerrar los procesos que se están ejecutando
[Ctrl]+[A],[?]
-> Nos muestra las combinaciones de teclas
Vale, vale, muy bonito, pero sigue con el ejemplo. OK, seguimos con el ejemplo. Ahora que tenemos screen
corriendo, vamos a conectarnos con un equipo remoto:
Vemos que no aparece nada nuevo así que vamos a lanzar una tarea «interminable», un ping
:
Dejamos que pasen unos cuantos pings
y ahora pulsamos:[Ctrl]+[A],[D]
.Nos aparecerá el mensaje que vemos en la siguiente imagen.
Vale, ¿y? Pues nada, ahora nos podemos desconctar y conectarnos de nuevo tecleando screen -r
y volveremos a conectarnos al ping
ese que hemos dejado corriendo sin que se haya interrumpido :) Útil, ¿no?
Ahora que ya habéis visto cómo funciona y una de sus ventajas … echad mano del man
y de Internet así como de vuestra imaginación y haced buen uso de screen
;)