Starten Sie mehrere Apps, die in Shells ausgeführt werden, die in einer Konsole aufgeteilt sind

9

Ich muss mehrere Apps starten, die in Shells ausgeführt werden, und deren Ausführung überwachen. Derzeit habe ich ein Hauptskript, das alle Apps in einer neuen Gnome-Konsole startet, aber ich würde es vorziehen, sie alle im selben Fenster in geteilten Bildschirmen zu starten.

In diesem Beitrag Mehrere Shells in einem Fenster erklären, wie geteilte Bildschirme mit vielen Arten von Konsolenanwendungen wie Bildschirm, Terminator und Byobu verwendet werden. Dies funktioniert manuell einwandfrei, aber ich möchte in der Lage sein, alle meine Apps in einer Split-Screen-Konsole automatisch von meinem Hauptskript aus zu starten. In der Dokumentation der oben genannten Tools konnte ich nichts tun, um dies automatisch über ein Skript zu erreichen.

Irgendwelche Ideen?

jmbouffard
quelle

Antworten:

6

Sie können eine benutzerdefinierte Bildschirmkonfigurationsdatei erstellen, die mehrere Teilungen öffnet und Ihre Skripte darin startet. Es würde ungefähr so ​​aussehen:

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

Fügen Sie dies in eine Datei namens myscripts ein und starten Sie den Bildschirm mit screen -c myscripts. Wenn Sie vertikale Teilungen bevorzugen, fügen Sie einfach -v zu den Teilungsbefehlen hinzu.

Wenn Sie ein Rasterlayout wünschen, versuchen Sie Folgendes:

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
quelle
Vielen Dank, das hat wie ein Zauber gewirkt. Das einzige andere Problem ist, dass ich nach dem Starten meiner mehreren Skripte Ca Cd kann, um zu meinem Terminal zurückzukehren, aber wenn ich "screen -r" mache, wird es zu meinem letzten geöffneten Tab fortgesetzt und ich kann die Ausgabe der anderen Tabs nicht mehr sehen. "screen -ls" zeigt nur eine Instanz, aber ich kann sehen, dass alle meine Skripte noch in der Prozessliste mit "ps" ausgeführt werden. Wie kann ich meinen Bildschirm mit mehreren Registerkarten trennen und mit demselben Status zurückkehren?
jmbouffard
Ich habe eine Superuser-Frage dazu gefunden: superuser.com/questions/69816/… Sieht aus wie ein heikles Problem. Mir fällt ein, dass Sie möglicherweise auch ein Makro erstellen können, das Ihre Teilungen wiederherstellt.
Ben Williams
Der Tipp aus dem Superuser-Forum scheint für mich nicht zu funktionieren, da die verschachtelte Sitzung meine Konfiguration nicht zu verwenden scheint, wenn ich sie mit der Option -c starte.
jmbouffard
Ich habe auch Ihre andere Idee ausprobiert, um meine Splits mit einer Konfigurationsdatei wie der in Ihrer Antwort gezeigten wiederherzustellen. Aber ich denke, ich muss "screen -r -c macro" verwenden, aber es scheint, dass ich die Option -r nicht mit -c kombinieren kann, da meine Befehle nicht berücksichtigt werden. "-c" allein stellt meine Teilungen mit leeren Bildschirmen wieder her, "-r -c Makro" macht genau das Gleiche wie "-r" allein und erzeugt keine Teilung.
jmbouffard