Cómo usar el comando screen para mantener tus comandos en ejecución en Linux

¿Cuántas veces te has conectado de forma segura a tus servidores Linux en el data center, solo para que, por alguna razón, tu conexión remota de shell seguro se interrumpiera? ¿Cuando te vuelves a conectar a ese servidor, el comando crítico que emitiste sigue ejecutándose? ¿O la conexión interrumpida arruinó el comando? No solo puede ser extremadamente confuso, sino que también puede hacer que pierdas trabajo y tiempo valiosos.

Afortunadamente, hay una solución para esto: la herramienta Screen. Con Screen, puedes reconectarte a ese servidor y retomar el comando donde lo dejaste. Quiero mostrarte cómo utilizar esta herramienta de administración de Linux. Demostraré en Ubuntu Server 16.04, pero Screen está disponible para casi todas las distribuciones de Linux.

¿Qué es Screen? En pocas palabras, Screen es un administrador de ventanas de pantalla completa que multiplexa una terminal física entre varios procesos. Cuando llamas al comando Screen, crea una ventana única en la que puedes trabajar normalmente. Puedes abrir tantas pantallas como necesites, alternar entre ellas, separarlas, listarlas y reconectarte a ellas.

A continuación, te explicaré cómo utilizar este práctico comando.

Índice de Contenido
  1. Instalación
  2. Uso
  3. Un comando que no puedes prescindir

Instalación

En Ubuntu Server 16.04, la herramienta Screen ya está instalada. Si descubres que no está, puedes instalarla con el comando sudo apt install screen. Si estás utilizando Fedora, el comando de instalación sería sudo dnf install screen. Eso es todo lo que necesitas para la instalación.

Uso

Conéctate de forma segura (Secure Shell) a tu servidor Linux remoto. Antes de comenzar a trabajar, emite el comando Screen. Aparecerá una ventana de bienvenida (Figura A).

Figura A

Puedes personalizar esa pantalla para facilitar el recuerdo de qué pantalla está ejecutando qué comando, así:

screen -S NOMBRE_DEL_COMANDO

Donde NOMBRE_DEL_COMANDO es el comando actual que ejecutarás.

Pulsa la barra espaciadora o Enter para salir de la ventana de bienvenida. Ahora te encontrarás en lo que parece ser un indicador estándar. Emitamos el comando sudo tail -f /var/log/syslog. El comando tail comenzará a seguir la entrada en el archivo de registro del sistema (como se esperaba). Ahora abramos una nueva pantalla presionando la combinación de teclas [Ctrl]+[a]+[c]. Esto te dará un nuevo indicador. Ahora hagamos un ping a nuestro servidor con el comando ping 192.168.1.208 (inserta la dirección IP de tu servidor). Con ese ping en ejecución, puedes cambiar de nuevo a la pantalla anterior con la combinación de teclas [Ctrl]+[a]+[p] (que cambia a la pantalla anterior). Ahora deberías estar de vuelta en tu pantalla sudo tail -f /var/log/syslog. Pulsa la combinación de teclas [Ctrl]+[a]+[n] (que cambia a la siguiente pantalla) y estarás de vuelta en el comando de ping.

Pero, ¿qué sucede cuando pierdes tu conexión? ¿Se pierden tus comandos? No. Escribe el comando screen -ls y verás tus dos pantallas en la lista (Figura B).

Figura B

Cada una de esas pantallas tiene un ID de sesión que te permite reconectarte. Entonces, nuestros IDs de sesión son:

  • 2216.pts-0.ubuntu16
  • 2067.pts-0.ubuntu16

Puedes reconectarte a una de esas pantallas con el comando de esta forma:

screen 2216.pts-0.ubuntu16

El único problema que podemos tener es que solo podrás reconectarte a las pantallas que estén listadas como Desconectadas. Esto sucederá si Screen detecta una desconexión de red. Si te desconectas y las pantallas no se han separado, puedes separarlas y reconectarlas manualmente con el comando:

screen -rd 2216.pts-0.ubuntu16

O, por ejemplo, si inicialmente iniciaste una pantalla con el comando screen -S compile-núcleo, puedes reconectarte a esa pantalla con el comando:

screen ID.compile-núcleo

Donde ID es el número de ID de 4 dígitos.

Si esa pantalla no se ha separado (Figura C), puedes reconectarte con el comando:

screen -rd ID.compile-núcleo

Donde ID es el número de ID de pantalla.

Figura C

Si necesitas alejarte de la terminal pero quieres que el comando siga ejecutándose, puedes separar manualmente la pantalla para reconectarte más tarde con la combinación de teclas [Ctrl]+[a]+[d]. Esto te devolverá al indicador estándar.

Finalmente, para salir de una pantalla, simplemente escribe el comando exit y volverás al indicador bash estándar. Asegúrate de, cuando hayas terminado con tus pantallas, reconectarte a ellas, finalizar sus comandos y salir.

Un comando que no puedes prescindir

Si te conectas frecuentemente de forma remota a tus servidores Linux y quieres asegurarte de no perder tu trabajo en línea de comando debido a una conexión de red cuestionable, Screen es un comando que no puedes prescindir. Para obtener más información sobre lo que esto puede hacer, emite el comando man screen y lee la página del manual.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Centros de Datos, allí encontraras muchos artículos similares a Cómo usar el comando screen para mantener tus comandos en ejecución en Linux , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.