byobuスクリーンセッションに接続してコマンドを実行しますか?

byobuスクリーンセッションに接続してコマンドを実行しますか?

私が書いているスクリプトでは、これをできるだけ自動化する方法を見つけようとしています。より興味深い課題の1つは、byobu画面セッションに接続してコマンドを実行することです。

だから私はスクリーンセッションの数を見ているのは明らかなことから始めました(ゲームには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.

1つしかないのでシステムを確認しました。

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

それでもマルチスクリーンはサポートされていません。

私の質問に:スクリプトでbyobuのウィンドウに接続する方法は?


少し関連して、bashスクリプトから接続してコマンドを送信してから分離する方法はありますか?

ベストアンサー1

ウィンドウを含む、以前に分離されたbyobu/セッションに直接接続できます。screen

byobu -r -p2

ウィンドウ2(または指定されたウィンドウ)に再接続します。

-Xbyobuすべてのコマンドは/セッションに送信でき、screenスイッチ-pでも機能します。

byobu -p2 -X stuff "uname -a $(echo -ne '\r')"

これにより、コマンドが実行されるようにuname -a2番目(実際には3番目)のbyobuウィンドウと最後にキャリッジリターンが送信されます。echo

おすすめ記事