Запуск нескольких приложений, работающих в оболочках, в одной консоли

9

Мне нужно запустить несколько приложений, работающих в оболочках, и следить за их выполнением. В настоящее время у меня есть основной скрипт, который запускает все приложения в новой консоли gnome, но я бы предпочел запускать их все в одном окне на разделенных экранах.

В этом посте « Несколько оболочек в одном окне» объясняется, как использовать разделенные экраны для многих типов консольных приложений, таких как screen, terminator и byobu. Это прекрасно работает вручную, но я хотел бы иметь возможность автоматически запускать все мои приложения в консоли с разделенным экраном из основного сценария. В документации по вышеперечисленным инструментам не было ничего, что я мог бы достигнуть автоматически из скрипта.

Любые идеи?

jmbouffard
источник

Ответы:

6

Вы можете создать собственный файл конфигурации экрана, который откроет несколько разделений и запустит в них ваши скрипты. Это будет выглядеть примерно так:

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

Поместите это в файл с именем myscripts и запустите экран с помощью screen -c myscripts. Если вы предпочитаете вертикальное разделение, просто добавьте -v к командам разделения.

Если вы хотите макет сетки, попробуйте что-то вроде этого:

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
Бен Уильямс
источник
Большое спасибо, это сработало как шарм. Единственная другая проблема заключается в том, что после запуска нескольких сценариев я могу Ca Cd вернуться в свой терминал, но когда я нажимаю «screen -r», он возвращается к моей последней открытой вкладке, и я больше не вижу вывод других вкладок. «screen -ls» показывает только один экземпляр, но я вижу, что все мои сценарии все еще выполняются в списке процессов с «ps». Так как же мне отсоединить экран с несколькими вкладками и вернуться к нему с тем же состоянием?
jmbouffard
Я нашел вопрос суперпользователя по этому поводу: superuser.com/questions/69816/… Похоже, это острая проблема. Мне приходит в голову, что вы также можете создать макрос, который восстанавливает ваши сплиты.
Бен Уильямс
Совет от форума суперпользователя, кажется, не работает для меня, потому что вложенный сеанс, кажется, не использует мою конфигурацию, когда я запускаю его с параметром -c.
jmbouffard
Я также попробовал вашу другую идею восстановить мои сплиты с помощью файла конфигурации, такого как тот, который показан в вашем ответе. Но я предполагаю, что мне нужно использовать «screen -r -c macro», но кажется, что я не могу объединить опцию -r с -c, потому что она не учитывает мои команды. Один только -c восстанавливает мои разбиения с пустыми экранами, макрос -r -c делает то же самое, что и один -r, и не создает никакого разделения.
jmbouffard