В сценарии, который я создаю, я экспериментирую с тем, как максимально автоматизировать. Одна из наиболее интересных задач - подключиться к экранному сеансу byobu и выполнить команду.
Итак, я начал с очевидного места, посмотрев, сколько там сеансов экрана (в игре 3 окна в бёбу, а в lordquackstar 2. Пользователи находятся в отдельных экземплярах замазок)
game@quackgame:~$ screen -ls
There is a screen on:
2019.byobu (01/05/2011 05:10:04 PM) (Attached)
1 Socket in /var/run/screen/S-game.
Там только один, поэтому я проверил систему
lordquackstar@quackgame:/home/game$ sudo ls -lAR /var/run/screen/
/var/run/screen/:
total 0
drwx------ 2 game users 100 2011-01-06 09:18 S-game
drwx------ 2 lordquackstar lordquackstar 100 2011-01-06 09:17 S-lordquackstar
/var/run/screen/S-game:
total 4
prwx------ 1 game users 0 2011-01-08 07:55 2019.byobu
-rw------- 1 game users 0 2011-01-06 09:18 byobu-exchange
-rw-r--r-- 1 game users 3 2011-01-08 07:32 byobu.updates-available
/var/run/screen/S-lordquackstar:
total 4
prwx------ 1 lordquackstar lordquackstar 0 2011-01-08 07:42 1169.byobu
-rw------- 1 lordquackstar lordquackstar 0 2011-01-06 09:17 byobu-exchange
-rw-r--r-- 1 lordquackstar lordquackstar 3 2011-01-08 07:35 byobu.updates-available
Все еще нет нескольких экранов
Итак, на мой вопрос: как я могу подключиться к окну в бёбу из скрипта?
Что касается примечания, когда я подключаюсь к нему из скрипта bash, есть ли способ отправить ему команду, а затем отключить ее?
bash
gnu-screen
byobu
TheLQ
источник
источник
htop
показал несколько экранных процессовОтветы:
Вы можете напрямую подключиться к ранее удаленные
byobu
/screen
сессии , включая окно:подключится к окну 2 (или именованному).
-X
может отправить любую командуbyobu
/screen
сеанс, а также работает с-p
коммутатором.Это отправит
uname -a
второе (на самом деле третье) окно byobu, аecho
в конце отправляет возврат каретки, чтобы команды выполнялись.источник
uname -a
) вbyobu
сеанс.Вы можете отправить команду конкретному экранному окну определенного экранного сеанса, не подключаясь к нему.
Имя сеанса задается с помощью
-S
опции при запуске экрана илиsessionname
команды; по умолчанию этоbyobu
с бёбу. Вы также можете использовать экран PID после-S
. Вы можете установить имя окна с помощьюtitle
команды. Вы также можете использовать номер окна.источник