Dalam skrip yang saya bangun saya sedang bereksperimen dengan cara mengotomatisasi sebanyak mungkin. Salah satu tantangan yang lebih menarik adalah menyambung ke sesi layar byobu dan menjalankan perintah.
Jadi saya mulai di tempat yang jelas, melihat berapa banyak sesi layar yang ada (game memiliki 3 windows di byobu dan lordquackstar memiliki 2. Pengguna berada dalam contoh dempul yang terpisah)
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.
Hanya ada satu di sana, jadi saya memeriksa sistemnya
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
Masih tidak ada banyak layar
Jadi untuk pertanyaan saya: Bagaimana saya bisa terhubung ke jendela di byobu dari skrip?
Pada catatan yang sedikit terkait, begitu saya terhubung ke sana dari skrip bash, apakah ada cara untuk mengirimnya perintah lalu kirim?
bash
gnu-screen
byobu
TheLQ
sumber
sumber
htop
menunjukkan proses layar gandaJawaban:
Anda dapat langsung melampirkan ke sesi
byobu
/ terpisah sebelumnyascreen
termasuk jendela:akan memasang kembali ke jendela 2 (atau yang bernama).
-X
dapat mengirim perintah apa pun kebyobu
/screen
sesi dan juga berfungsi dengan-p
sakelar.Ini akan mengirimkan
uname -a
jendela byobu ke kedua (ketiga sebenarnya),echo
pada akhirnya mengirim carriage return sehingga perintah dijalankan.sumber
uname -a
) ke dalambyobu
sesi.Anda dapat mengirim perintah ke jendela layar tertentu dari sesi layar tertentu tanpa melampirkannya.
Nama sesi diatur dengan
-S
opsi saat memulai layar atausessionname
perintah; secara default itubyobu
dengan byobu. Anda juga dapat menggunakan PID layar setelahnya-S
. Anda dapat mengatur nama jendela dengantitle
perintah. Anda juga dapat menggunakan nomor jendela.sumber