Uruchom wiele aplikacji działających w powłokach podzielonych na jedną konsolę

9

Muszę uruchomić wiele aplikacji działających w powłokach i monitorować ich wykonywanie. Obecnie mam główny skrypt, który uruchamia wszystkie aplikacje w nowej konsoli gnome, ale wolałbym uruchamiać je wszystkie w tym samym oknie na podzielonych ekranach.

Ten post Wiele powłok w jednym oknie wyjaśnia, jak używać podzielonych ekranów w wielu typach aplikacji konsolowych, takich jak screen, terminator i byobu. Działa to dobrze ręcznie, ale chciałbym móc automatycznie uruchamiać wszystkie moje aplikacje w konsoli podzielonego ekranu z głównego skryptu. W dokumentacji z wyżej wymienionych narzędzi nie było nic, co mógłbym osiągnąć automatycznie ze skryptu.

Jakieś pomysły?

jmbouffard
źródło

Odpowiedzi:

6

Możesz utworzyć niestandardowy plik konfiguracyjny ekranu, który otworzy wiele podziałów i uruchomi w nich skrypty. Wyglądałoby to tak:

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

Umieść to w pliku o nazwie myscripts i uruchom ekran za pomocą screen -c myscripts. Jeśli wolisz podziały pionowe, po prostu dodaj -v do poleceń podziału.

Jeśli chcesz układ siatki, spróbuj czegoś takiego:

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
źródło
Dzięki bardzo, działało to jak urok. Jedynym innym problemem jest to, że po uruchomieniu wielu skryptów mogę Ca Cd, aby powrócić do mojego terminala, ale kiedy wykonam polecenie „screen -r”, wznawia się do mojej ostatniej otwartej karty i nie widzę już wyników innych kart. „screen -ls” pokazuje tylko jedną instancję, ale widzę, że wszystkie moje skrypty nadal działają na liście procesów z „ps”. Jak mogę odłączyć ekran z wieloma kartami i wrócić do niego z tym samym stanem?
jmbouffard
Znalazłem pytanie superużytkownika na ten temat: superuser.com/questions/69816/... Wygląda na drażliwy problem. Przychodzi mi do głowy, że możesz być w stanie utworzyć makro, które przywraca twoje podziały.
Ben Williams,
Wskazówka z forum superużytkownika wydaje się nie działać, ponieważ sesja zagnieżdżona nie używa mojej konfiguracji, gdy uruchamiam ją z opcją -c.
jmbouffard
Próbowałem też innego pomysłu, aby przywrócić moje podziały za pomocą pliku konfiguracyjnego takiego jak ten pokazany w twojej odpowiedzi. Ale chyba muszę użyć „screen -r -c macro”, ale wygląda na to, że nie mogę połączyć opcji -r z -c, ponieważ nie bierze pod uwagę moich poleceń. Samo „-c” przywraca moje podziały z pustymi ekranami, „-r -c macro” robi dokładnie to samo, co sam „-r” i nie tworzy żadnego podziału.
jmbouffard