Запустите несколько программ в разделенном терминале

384
fortran

Я хочу запустить несколько программ с помощью одного скрипта запуска и отслеживать их вывод на консоль.

Самый простой способ - запустить xterm для каждой программы в фоновом режиме, но это не очень удобно (мне не нравится, когда вокруг слишком много окон).

Другая альтернатива, о которой я подумал, - перенаправить их выходные данные в лог-файлы, а затем использовать multitailдля просмотра их выходных данных в одном терминале, но если я хочу их убить, мне нужно взглянуть на их PID и затем выполнить killкоманду вместо того, чтобы просто идти к их терминалу и нажать Ctrl+C. Кроме того, это не сработает, если некоторые программы используют проклятия или аналогичные.

Моим идеальным вариантом было бы что-то вроде использования screenдля мультиплексирования терминала (или даже для показа всех из них по-разному), но я не могу найти никакой опции на страницах руководства, связанных с этим, и поиск в Google screenне даст никакого полезного результата, как он есть очень общий термин.

Итак, какие-либо предложения о том, как добиться чего-то похожего на то, что я хочу?

1

2 ответа на вопрос

1
pgras

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

0
simonb

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

split split split screen program1 focus down screen program2 focus down screen program3 focus down screen program4 

где program1, program2 ... четыре программы, которые вы хотите запустить. Теперь в (большой) xterm или аналогичный ввод screen -c launch_file. Вы должны увидеть четырехстороннее разделенное представление с одной из запущенных программ в каждой. Вы можете использовать Ctrl+a tabдля переключения между четырьмя окнами и использовать Ctrl+cдля остановки одной из программ.