miércoles, 7 de diciembre de 2011

Múltiples consolas en segundo plano

Muchas veces he pensado en escribir este artículo y de hoy no pasa. Nunca recuerdo este comando y siempre pierdo un tiempo preciso es buscar y recordar como funciona. Y es realmente útil cuando tienes que dejar un proceso que previsiblemente tardará mucho tiempo en terminar y... no te fías de la conexión con el servidor ... se puede ir luz y el equipo desde el que estás conectado no tiene SAI... o simplemente te quieres conectar por SSH al servidor, lanzar el proceso y cerrar la conexión. Para hacer esto utilizaremos el comando "screen". Con el modificador "-dmS " vamos a crear "el terminal" desde el que lanzaremos los procesos en segundo plano. Podemos poner cualquier palabra, yo recomiendo que se utilice algo descriptivo para el fin que se utilizará. Por ejemplo si queremos mover las copias de seguridad que pesan procecientos GB de un disco a otro, podríamos llamar al terminar "ProcesoMueveCopiasSeguridad", así quedaría el comando:
screen -dmS ProcesoMueveCopiasSeguridad
Ahora su hacemos un "ps aux" podemos ver el proceso corriendo. Para acceder al terminar virtual, ejecutamremos:
screen -r ProcesoMueveCopiasSeguridad
Y si ejecutamos un "ps aux --forest" podemos ver que ahora el "ps" se está ejecutando desde la consola correspondiente al screen. Ahora si se corta la comunicación con el servidor no tendremos problemas, porque el proceso que lancemos no dependerá del proceso de nuestra conexión. Ahora bien, ¿Cómo volvemos a nuestro terminal anterior, el terminal que creamos al conectarnos? Pues simplemente pusando "ctrl+a+d" y volveremos al terminal anterior.