У меня есть рабочая среда на моем ноутбуке с Ubuntu, в которой я хочу использовать три разных экрана.
Например. в терминале я обычно пишу
screen -S mywork
run_server_1
затем ctrl-a c, чтобы создать второй экран
run_server_2
и т.п.
Я хотел бы написать сценарий для автоматизации настройки этой среды, но как я могу управлять несколькими экранами из одного сценария?
Обновление: я действительно хочу иметь возможность делать это из сценария оболочки, а не из конфигурации экрана. файл. Есть ли способ сделать это?
Чтение страницы руководства и учебные пособия помогает
Я бы сказал, что вы хотите создать файл $ HOME / .screenrc.multiwin.
# read in your normal screenrc
# before anything else
source $HOME/.screenrc
# now start opening windows
# it's possible to set the window title with
# the -t option
# you can also specify the window number
# to launch in
screen -t server1 5 run_server_1
screen -t server2 6 run_server_2
Затем бег
screen -c $HOME/.screenrc.multiwin
сделаю то, что тебе нужно
Команды можно передавать извне, используя screen -S sessionname -X command
например screen -S mywork -X screen run_server_2
создаст новое окно (так же, как ctrl-a c
), но в этом окне будет выполняться run_server_2. В отличие от выполнения этого вручную, в этом окне не будет запущенной оболочки, поэтому при выходе из run_server_2 окно будет закрыто.
Для управления несколькими экранами нужно просто убедиться, что все они названы с помощью -S
Я считаю tmux для этого типа целей гораздо легче создавать сценарии, чем screen. Программа tmux принимает свои собственные команды в качестве аргументов в командной строке, например, для запуска двух окон: «tmux new-session -d '/ bin / bash' \; new-window -d 'top'». В первом окне он запустит интерактивную оболочку «bash», а во втором - «сверху».