Posts Comando Screen
Post
Cancel

Comando Screen

¿Qué es el comando screen?

El comando “screen” en Linux es una herramienta de línea de comando que permite crear y controlar varias sesiones de terminal en una sola ventana de consola. Con él, se pueden ejecutar varios procesos simultáneamente en una sola ventana, lo que es útil para tareas como la ejecución de scripts de larga duración o la monitorización de servidores. Con screen se pueden crear y nombrar diferentes ventanas, cambiar entre ellas, detener y reanudar procesos, etc. Además, permite la detección automática de desconexiones y la reconexión remota.

Instalar screen

Para instalar el comando “screen” en Linux, se puede utilizar el administrador de paquetes del sistema. Los comandos para instalar screen varían según la distribución de Linux que se esté utilizando.

Aquí hay algunos ejemplos de cómo instalar screen en diferentes distribuciones:

  • Ubuntu/Debian:
1
sudo apt install screen
  • CentOS/Fedora:
1
sudo yum install screen
  • Arch Linux:
1
sudo pacman -S screen

Es importante tener en cuenta que es necesario tener permisos de administrador para poder instalar programas en el sistema. Si el comando no funciona, verificar que se tiene acceso con permisos de administrador o usando el comando “sudo”

¿Como funciona el comando Screen?

Para utilizar el comando “screen” en Linux, se puede ejecutar en la línea de comandos simplemente escribiendo “screen” y presionando enter. Esto abrirá una nueva sesión de screen.

Aquí hay algunos ejemplos de cómo se puede utilizar el comando screen:

  • Crear una nueva sesión:
1
screen
  • Listar las sesiones existentes:
1
screen -ls
  • Conectarse a una sesión existente:
1
screen -r [session_id]
  • Crear una nueva ventana dentro de una sesión de screen:
1
CTRL+a c
  • Cambiar entre ventanas dentro de una sesión de screen:
1
2
CTRL+a n (siguiente ventana)
CTRL+a p (ventana anterior)
  • Desconectarse de una sesión de screen sin detener los procesos en segundo plano:
1
CTRL+a d
  • Detener una sesión de screen:
1
2
CTRL+a k

  • Ayuda sobre comandos de screen
1
screen -h

Es importante tener en cuenta que screen tiene muchas más opciones y comandos disponibles, estos son solo algunos ejemplos básicos de cómo se puede utilizar.

¿Cuándo es útil utilizar el comando Screen?

El principal motivo para utilizar screen es si necesitamos realizar una ejecución de procesos de larga duración. Si tienes un proceso que puede tardar varias horas en completarse, puedes usar screen para ejecutarlo en segundo plano y desconectarte de la sesión sin interrumpirlo.

Si tienes interrupciones en tu servidor, con screen te aseguras de que tus procesos y tareas importantes continúen ejecutándose a pesar de las interrupciones.

Ejemplo práctico

Aquí hay un ejemplo práctico de cómo se puede utilizar el comando “screen” en Linux:

Abra una terminal y ejecute el comando “screen”. Esto abrirá una nueva sesión de screen. Utilizamos el parámetro “-S” para crear una nueva sesión de screen con un nombre específico. El nombre que se especifique después de “-S” se utilizará como el nombre de la sesión.

Por ejemplo, como vamos a descargar una ISO de Debian vamos a crear una nueva sesión de screen llamada “download-debian”, para ello ejecutaría el siguiente comando:

1
2
devops@chakray:~$ screen -S download-debian
[detached from 827724.download-debian]

Dentro de la nueva sesión de screen ejecute el comando “wget” para descargar la imagen ISO deseada. Por ejemplo, si deseas descargar una imagen ISO de Debian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
devops@chakray:~$ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.6.0-amd64-DVD-1.iso
--2023-01-14 10:47:51--  https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.6.0-amd64-DVD-1.iso
Resolviendo cdimage.debian.org (cdimage.debian.org)... 194.71.11.165, 194.71.11.163, 194.71.11.173
Conectando con cdimage.debian.org (cdimage.debian.org)[194.71.11.165]:443... conectado.
Petición HTTP enviada, esperando respuesta... 302 Found
Ubicación: https://laotzu.ftp.acc.umu.se/debian-cd/current/amd64/iso-dvd/debian-11.6.0-amd64-DVD-1.iso [siguiente]
--2023-01-14 10:47:51--  https://laotzu.ftp.acc.umu.se/debian-cd/current/amd64/iso-dvd/debian-11.6.0-amd64-DVD-1.iso
Resolviendo laotzu.ftp.acc.umu.se (laotzu.ftp.acc.umu.se)... 194.71.11.166
Conectando con laotzu.ftp.acc.umu.se (laotzu.ftp.acc.umu.se)[194.71.11.166]:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 3909091328 (3,6G) [application/x-iso9660-image]
Guardando como: “debian-11.6.0-amd64-DVD-1.iso.3”

debian-11.6.0-amd64-DVD-1.iso.3                        5%[=====>                                                                                                                ] 215,29M  26,3MB/s    eta 2m 20s 

Ya tenemos nuestra imagen ISO descargando. Luego, presione “CTRL+a” y luego “d” para desconectarse de la sesión de screen, sin detener la descarga.

Listar sesiones

Utiliza el comando “screen -ls” para verificar qué sesiones de screen se encuentran activas en el sistema. Este comando muestra una lista de todas las sesiones de screen activas, incluyendo su nombre, ID y estado (si está conectada o desconectada).

1
2
3
4
devops@chakray:~$ screen -ls
There is a screen on:
    827724.download-debian  (14/01/23 10:16:40) (Detached)
1 Socket in /run/screen/S-devops.

Reconectar a una sesión

Si deseas verificar el estado de la descarga, puedes conectarte de nuevo a la sesión de screen utilizando el comando “screen -r download-debian”.

1
2
devops@chakray:~$ screen -r 827724.download-debian
[detached from 827724.download-debian]

Vemos que la descarga ha continuado en segundo plano y casi ha terminado a pesar de no estar en la terminal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
devops@chakray:~$ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.6.0-amd64-DVD-1.iso
--2023-01-14 10:50:50--  https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.6.0-amd64-DVD-1.iso
Resolviendo cdimage.debian.org (cdimage.debian.org)... 194.71.11.165, 194.71.11.163, 194.71.11.173
Conectando con cdimage.debian.org (cdimage.debian.org)[194.71.11.165]:443... conectado.
Petición HTTP enviada, esperando respuesta... 302 Found
Ubicación: https://laotzu.ftp.acc.umu.se/debian-cd/current/amd64/iso-dvd/debian-11.6.0-amd64-DVD-1.iso [siguiente]
--2023-01-14 10:50:50--  https://laotzu.ftp.acc.umu.se/debian-cd/current/amd64/iso-dvd/debian-11.6.0-amd64-DVD-1.iso
Resolviendo laotzu.ftp.acc.umu.se (laotzu.ftp.acc.umu.se)... 194.71.11.166
Conectando con laotzu.ftp.acc.umu.se (laotzu.ftp.acc.umu.se)[194.71.11.166]:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 3909091328 (3,6G) [application/x-iso9660-image]
Guardando como: “debian-11.6.0-amd64-DVD-1.iso.4”

debian-11.6.0-amd64-DVD-1.iso.4                       87%[======================================================================================================>               ]   3,20G  26,5MB/s    eta 18s  

Terminar sesión

Una vez completada la descarga, utiliza el comando “exit” o “CTRL+d” para salir de la sesión de screen, o utiliza “CTRL+a” y luego “k” para terminar la sesión de screen y detener la descarga.

El comando “screen -X -S kill” se utiliza para matar o terminar una sesión específica de screen. La opción -X permite enviar el comando a una sesión desconectada, y la opción -S especifica el nombre de la sesión, en este caso “kill”.

Por ejemplo, si tienes una sesión de screen en ejecución con el nombre “download-debian” y deseas terminarla, ejecutarías el siguiente comando:

1
devops@chakray:~$ screen -X -S 827724.download-debian kill

Esto terminará la sesión especificada, y todos los procesos que se estén ejecutando dentro de ella se detendrán. Es importante usar cuidadosamente este comando ya que todos los procesos que se estén ejecutando en esa sesión serán matados.

Puedes ver un ejemplo práctico accediendo al siguiente video de asciinema:

Conclusión

En conclusión, el comando “screen” es una herramienta valiosa para los administradores de sistemas y desarrolladores en Linux que les permite crear y controlar varias sesiones de terminal en una sola ventana de consola. Con screen se pueden crear y nombrar diferentes ventanas, cambiar entre ellas, detener y reanudar procesos, ejecutar comandos en segundo plano y recuperar sesiones desconectadas.

Además, permite la detección automática de desconexiones y la reconexión remota. Es una herramienta muy útil para tareas como la ejecución de scripts de larga duración o la monitorización de servidores.

This post is licensed under CC BY 4.0 by the author.