Mantenga los procesos en ejecución a pesar de una conexión interrumpida

Se inició el comando de pantalla de Linux

Supongo que todos saben esto: están conectados a su servidor con SSH y en medio de la compilación de algún software (por ejemplo, un nuevo kernel) o haciendo alguna otra tarea que lleva mucho tiempo, y de repente su conexión se cae por alguna razón, y pierdes tu trabajo inacabado. Esto puede ser muy molesto, pero afortunadamente, hay una pequeña utilidad llamada pantalla que te permite volver a conectarte a una sesión anterior para que puedas terminar tu tarea. Este breve tutorial muestra cómo usar screen solo para este propósito.

1 Instalación del comando de pantalla

La instalación de la pantalla es muy fácil. En Debian, ejecute:

apt-get install screen

Para Ubuntu, use el comando con sudo:

sudo apt-get install screen

Y para Fedora, CentOS, SuSE y Mandriva también hay paquetes de pantalla que puede instalar con yum/yast/urpmi/…

Fedora y CentOS

yum install screen

2 Usando el comando de pantalla

Con screen puedes crear una o más sesiones en tu terminal SSH actual. Solo corre

screen

para empezarlo Esto crea una sesión de pantalla o ventana (aunque no la veas como tal) en tu terminal SSH actual:

Se inició el comando de pantalla de Linux

Presione Espacio o Retorno para acceder al símbolo del sistema:

Símbolo del sistema de pantalla de Linux

Parece tu terminal SSH normal, ¿no?

Ahora voy a describir los comandos de pantalla más importantes que necesita para controlar la pantalla. Estos comandos comienzan con CTRL a para distinguirlos de los comandos de shell normales.

  • Ctrl ac: crea una nueva sesión de pantalla para que pueda usar más de una sesión de pantalla a la vez.
  • Ctrl an – Cambia a la nortesesión de pantalla externa (si usa más de una).
  • Ctrl ap – Cambia a la pagssesión de pantalla anterior (si usa más de una).
  • Ctrl ad: separa una sesión de pantalla (sin eliminar los procesos en ella, continúan).

Para cerrar una sesión de pantalla donde todas las tareas hayan terminado, puede escribir

exit

Ahora juguemos un poco con eso. En nuestra ventana de pantalla, ejecutamos el comando

top

Esto debería verse así:

Comando superior ejecutándose dentro de la pantalla

Ahora vamos a crear otra sesión de pantalla escribiendo

Ctrl a c

Se abre una nueva sesión de pantalla en blanco, y allí ejecutamos

tail -f /var/log/mail.log

para echar un vistazo continuo a nuestro registro de correo:

mail.log mostrado en el comando de pantalla

Ahora puede navegar por sus dos sesiones de pantalla ejecutando

Ctrl a n

o

Ctrl a p

Para desconectar una sesión de pantalla y volver a su terminal SSH normal, escriba

Ctrl a d

De vuelta en su terminal SSH normal, puede ejecutar

screen -ls

para obtener una lista de sus sesiones de pantalla actuales:

There are screens on:
        2477.pts-0.server1      (Detached)
        2522.pts-0.server1      (Detached)
2 Sockets in /var/run/screen/S-root.

Para volver a conectarse a una de estas sesiones, ejecute

screen -r 2477.pts-0.server1

donde 2477.pts-0.server1 es el nombre de una de las sesiones de la salida screen -ls.

Para salir y finalizar una sesión de pantalla, finalice todas las tareas actuales en ella (la parte superior se puede finalizar escribiendo q, la cola -f /var/log/mail.log se puede finalizar escribiendo CTRL c) y luego escriba

exit

Luego volverá a otra sesión de pantalla (si usa más de una) o al terminal SSH normal, si no hay más sesiones de pantalla abiertas.

Si desea obtener más información sobre la pantalla, ejecute

man screen

3 Mi conexión se cayó – ¿Qué puedo hacer?

Ahora supongamos que compila un kernel en una sesión de pantalla, algo que normalmente lleva mucho tiempo, y de repente se cae la conexión. Gracias a screen tu trabajo no se pierde. Una vez que su conexión esté respaldada, inicie sesión en su sistema con SSH nuevamente y ejecute

screen -ls

como se muestra en el capítulo 2. De los resultados, elija una sesión (por ejemplo, 2477.pts-0.server1) y vuelva a adjuntarla:

screen -r 2477.pts-0.server1

Si eligió la sesión correcta, debería encontrar que su kernel aún se está compilando (si no ha terminado mientras tanto) para que pueda continuar con su trabajo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *