Назад | Перейти на главную страницу

Могу ли я создавать «экраны» unix и управлять ими в скрипте?

У меня есть рабочая среда на моем ноутбуке с 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», а во втором - «сверху».