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.
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
Si quieres ejecutar estos 3 scripts al mismo tiempo, puedes hacerlo de la siguiente manera:
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:
Después de iniciar los scripts, puedes administrar estas sesiones de screen con varios comandos.
Listar todas las sesiones
screen -ls
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!