Démarrez plusieurs applications exécutées dans des shells divisés en une seule console

9

Je dois démarrer plusieurs applications s'exécutant dans des shells et surveiller leur exécution. Actuellement, j'ai un script principal qui lance toutes les applications dans une nouvelle console gnome, mais je préférerais les lancer toutes dans la même fenêtre sur des écrans divisés.

Ce post Plusieurs shells dans une fenêtre explique comment utiliser les écrans divisés avec de nombreux types d'applications de console telles que screen, terminator et byobu. Cela fonctionne bien manuellement mais je voudrais pouvoir démarrer toutes mes applications dans une console à écran partagé automatiquement à partir de mon script principal. Dans la documentation des outils mentionnés ci-dessus, je ne pouvais rien imposer pour y parvenir automatiquement à partir d'un script.

Des idées?

jmbouffard
la source

Réponses:

6

Vous pouvez créer un fichier de configuration d'écran personnalisé qui ouvrira plusieurs divisions et y lancera vos scripts. Cela ressemblerait à quelque chose comme ceci:

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

Mettez-le dans un fichier appelé myscripts et lancez l'écran avec screen -c myscripts. Si vous préférez les divisions verticales, ajoutez simplement -v aux commandes de division.

Si vous souhaitez une disposition en grille, essayez quelque chose comme ceci:

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
la source
Merci beaucoup, cela a fonctionné comme un charme. Le seul autre problème est qu'après avoir démarré mes multiples scripts, je peux Ca Cd pour revenir à mon terminal mais quand je fais "screen -r" il revient à mon dernier onglet ouvert et je ne peux plus voir la sortie des autres onglets. "screen -ls" montre seulement une instance mais je peux voir que tous mes scripts sont toujours en cours d'exécution dans la liste des processus avec "ps". Alors, comment puis-je détacher mon écran multi-onglets et y revenir avec le même état?
jmbouffard
J'ai trouvé une question de superutilisateur à ce sujet: superuser.com/questions/69816/… ressemble à un problème épineux. Il me semble que vous pourriez également être en mesure de créer une macro qui rétablit vos divisions.
Ben Williams
L'astuce du forum des super-utilisateurs ne semble pas fonctionner pour moi car la session imbriquée ne semble pas utiliser ma configuration lorsque je la lance avec l'option -c.
jmbouffard
J'ai également essayé votre autre idée pour rétablir mes divisions avec un fichier de configuration tel que celui indiqué dans votre réponse. Mais je suppose que je dois utiliser "screen -r -c macro" mais il semble que je ne puisse pas combiner l'option -r avec -c car elle ne tient pas compte de mes commandes. "-c" seul rétablit mes divisions avec des écrans vides, "-r -c macro" fait exactement la même chose que "-r" seul et ne crée aucune division.
jmbouffard