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


9

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

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

Любые идеи?

Ответы:


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.