Ayer tenía un problema con un cliente. Ejecutaba un comando en un servidor, y el proceso iba a tardar mucho. Me refiero a varios días. Y claro, no puedo estar varios días conectado por ssh, en algún momento tengo que apagar mi ordenador, o desplazarlo de la oficina a mi casa. Entonces el comando se corta, y tendría que empezar de nuevo.
Entonces Víctor, nuestro técnico encargado de servidores, me presentó al comando screen (yo no lo conocía). Screen está pensado para situaciones como esta, o para casos en los que, desde una misma conexión ssh, quieres abrir varios procesos que puedas ir monitorizando individualmente.
Screen abre “ventanas virtuales” , como nuevas conexiones dentro de una misma conexión.Lo bueno para el caso que nos ocupa, es que puedes hacer un detach: dejar esa pantalla activa y desconectarte, haciendo que siga el proceso. Puedes volver cuando quieras para ver cómo va o seguir ejecutando comandos ahí.
Comandos Screen:
- Para abrir una ventana virtua simplemente escribe screen:
root# screen -
Ctrl-a ? Ayuda de Screen Ctrl-a c Crear una nueva ventana virtual. Ctrl-a ” Lista navegable de ventanas abiertas Ctrl-a Ctrl-n Cambiar a la venana Siguiente o Anterior Ctrl-a Ctrl-N Cambiar a la Ventana N (de 0-9) Ctrl-a x Bloquear todas las terminales con una clave Ctrl-a d Hacer un Detach. Sales de la ventana pero la deja activa. exit Con esto cierras la ventana virtual de definitivamente. Ctrl-a S Divide la ventana horizontalmente Ctrl-a tab Salta a la siguiente zona Ctrl-a X Cerrar la zona actual Ctrl-a Q Cerrar todas las zonas excepto la actual Copiar en Screen Ctrl-a + [ Entrar en modo copia/scroll. Enter Comenzar la selección de texto / Finalizar la selección de texto, copiar y salir modo copia/scroll. Cursor Desplazamiento del cursor selecciona el texto a copiar (si estamos en modo copia/scroll). ESC Salir del modo copia/scroll sin copiar nada. Ctrl-a + ] Pegar el texto copiado.
- Para ver que sesiones de screen hay abiertas puedes poner screen -list
- Para unirte a una sesión de screen abierta screen -r IDSESION
- Para salir de una ventana pero dejar la sesión activa Ctr-a d.
Puedes cerrar tu conexión y la sesión seguirá activa. - Para cerrar una sesión de screen, tras haber hecho el comando anterior, puedes poner
screen -S IDSESION -X quit
Por ejemplo
screen -S 24365 -X quit
- Si se te ha cortado la conexión, y vuelves, verás que tienes (con un screen -list) la sesión attached. Para poder conectarte de nuevo, tienes que hacer un
screen -D IDSESION
Para hacer un Detach. Y luego volver a univerte conscreen -r IDSESION
Esperemos que os sirva, es un comando excelente para poder jugar y nos da mucha potencia a nuestro terminal. ¿Cómo no lo conocía?
Os recomendamos los siguientes productos relacionados con la informática: