Inicie múltiples aplicaciones que se ejecutan en shells divididas en una consola

9

Necesito iniciar múltiples aplicaciones ejecutándose en shells y monitorear su ejecución. Actualmente tengo un script principal que inicia todas las aplicaciones en una nueva consola gnome, pero preferiría iniciarlas todas en la misma ventana en pantallas divididas.

Esta publicación Múltiples shells en una ventana explica cómo usar pantallas divididas con muchos tipos de aplicaciones de consola como screen, terminator y byobu. Esto funciona bien manualmente, pero me gustaría poder iniciar todas mis aplicaciones en una consola de pantalla dividida automáticamente desde mi script principal. En la documentación de las herramientas mencionadas anteriormente, no había nada que pudiera hacer bien para lograr esto automáticamente desde un script.

¿Algunas ideas?

jmbouffard
fuente

Respuestas:

6

Puede crear un archivo de configuración de pantalla personalizado que abrirá múltiples divisiones e iniciará sus scripts en ellas. Se vería algo así:

screen script1.sh # Open first screen and launch first script
split             # Make second split
focus             # Switch to second split
screen script2.sh # Open second screen and launch second script
split             # Make third split
focus             # Switch to third split
screen script3.sh # Open third screen and launch third script

Ponga esto en un archivo llamado myscripts y la pantalla de inicio con screen -c myscripts. Si prefiere divisiones verticales, simplemente agregue -v a los comandos divididos.

Si desea un diseño de cuadrícula, intente algo como esto:

screen script1.sh # Open first screen and launch first script
split -v          # Make second split
focus             # Switch to second split
screen script2.sh # Open second screen and launch second script
split             # Make third split
focus             # Switch to third split
screen script3.sh # Open third screen and launch third script
focus             # Cycle back to first split
split             # Split first split horizontally
focus             # Switch to new split
screen script4.sh # Open fourth screen and launch fourth script
Ben Williams
fuente
Muchas gracias, esto funcionó a las mil maravillas. El único otro problema es que después de iniciar mis múltiples scripts, puedo hacer que Ca Cd regrese a mi terminal, pero cuando hago "screen -r" se reanuda en mi última pestaña abierta y ya no puedo ver la salida de las otras pestañas. "screen -ls" muestra solo una instancia, pero puedo ver que todos mis scripts siguen ejecutándose en la lista de procesos con "ps". Entonces, ¿cómo puedo separar mi pantalla de múltiples pestañas y volver a ella con el mismo estado?
jmbouffard
Encontré una pregunta de superusuario sobre eso: superuser.com/questions/69816/… Parece un problema espinoso. Se me ocurre que también podrías hacer una macro que restablezca tus divisiones.
Ben Williams
La sugerencia del foro de superusuario no parece funcionar para mí porque la sesión anidada no parece usar mi configuración cuando la ejecuto con la opción -c.
jmbouffard
También probé su otra idea para restablecer mis divisiones con un archivo de configuración como el que se muestra en su respuesta. Pero supongo que necesito usar "screen -r -c macro", pero parece que no puedo combinar la opción -r con -c porque no tiene en cuenta mis comandos. "-c" solo restablece mis divisiones con pantallas vacías, "-r -c macro" hace exactamente lo mismo que "-r" solo y no crea ninguna división.
jmbouffard