Administra múltiples terminales con Screen

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

El comando screen es extremadamente útil para ejecutar múltiples scripts simultáneamente en segundo plano. Esto te permite iniciar tareas de larga duración sin tener que mantener una terminal abierta para cada una. A continuación, veremos cómo usar screen para ejecutar scripts en segundo plano y administrar estas sesiones.

Ejemplo de uso del comando screen

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/ProcessManagementandControlGroup(["Process Management and Control"]) linux/ProcessManagementandControlGroup -.-> linux/jobs("Job Managing") linux/ProcessManagementandControlGroup -.-> linux/bg_process("Background Management") subgraph Lab Skills linux/jobs -.-> lab-271827{{"Administra múltiples terminales con Screen"}} linux/bg_process -.-> lab-271827{{"Administra múltiples terminales con Screen"}} end

Ejecución de scripts en segundo plano

Tienes tres scripts que realizan diferentes tareas en ~/project.

Abre la terminal ( ① o ② en la figura ) en el entorno y escribe el siguiente comando:

ls ~/project
Terminal listando archivos del proyecto

Si quieres ejecutar estos 3 scripts al mismo tiempo, puedes hacerlo de la siguiente manera:

Tres scripts ejecutándose simultáneamente

Ahora, usaremos screen para ejecutar estos scripts simultáneamente en sesiones separadas.

Para ejecutar estos scripts en segundo plano usando screen, usaremos la opción -dmS:

  • -d inicia una sesión y la desacopla inmediatamente.
  • -m fuerza a screen a crear una nueva sesión.
  • -S nos permite nombrar la sesión para una fácil referencia.

Inicio de los scripts

Abre una terminal y navega hasta el directorio que contiene tus scripts. Luego, inicia cada script en una sesión de screen separada usando los siguientes comandos:

screen -dmS task1./script1.sh
screen -dmS task2./script2.sh
screen -dmS task3./script3.sh

Administración de sesiones

Después de iniciar los scripts, puedes administrar estas sesiones de screen con varios comandos.

Listar todas las sesiones

screen -ls
Salida de la lista de sesiones de screen

Este comando mostrará todas tus sesiones de screen en ejecución.

Volver a conectarse a una sesión

screen -r session_name

Si quieres comprobar la salida o interactuar con un script específico, usa este comando para volver a conectarte a su sesión. Reemplaza session_name con el nombre que asignaste al iniciar el script (por ejemplo, task1, task2 o task3).

Desacoplarse de una sesión

Una vez que hayas terminado de comprobar una sesión, puedes desacoplarte de ella y dejarla continuar ejecutándose en segundo plano presionando Ctrl-a seguido de d.

Terminar una sesión

Para terminar una sesión, vuelve a conectarte a ella usando screen -r session_name y luego escribe exit o presiona Ctrl-d.

Resumen

Usar screen para administrar múltiples tareas en segundo plano puede optimizar significativamente tu flujo de trabajo, especialmente cuando se trata de procesos de larga duración o en segundo plano. Al ejecutar scripts en sesiones de screen desacopladas, mantienes un espacio de trabajo limpio y te aseguras de que tus procesos continúen sin interrupciones, incluso si te desconectas del servidor o cierras tu terminal.

¡Experimenta con screen para descubrir cómo se adapta mejor a tu flujo de trabajo y mejora tu productividad!