Saya ingin meluncurkan beberapa aplikasi di dalam sesi layar tetapi dari skrip.
Tanpa skrip saya hanya akan meluncurkan layar, kemudian buka N windows dengan crtl-ac dan jalankan program di setiap windows.
Saya mencoba yang berikut ini
screen -d -m -S test
screen -S test -X exec tail -f /var/log/messages
screen -S test -X screen
screen -S test -X exec tail -f /var/log/xinetd.log
Tapi ketika saya pasang, sesi tail tidak berjalan. Jika saya melampirkan sesi setelah screen -d -m -S startup
dan lari screen -S startup -X exec tail -f /var/log/messages
dari terminal lain, itu berhasil.
Apakah saya melewatkan sesuatu?
Edit setelah jawaban AlexD:
Solusi setengah bekerja adalah
screen -d -m -S test tail -f /var/log/messages
screen -S test -X screen tail -f /var/log/xinetd.log
Perintah chaining screen (yang setelah -X) dengan perintah ini bekerja sementara exec tidak mungkin karena exec mengharapkan jendela saat ini akan didefinisikan sementara tidak ada saat ini ketika layar terlepas. Terima kasih kepada AlexD untuk tips ini.
Tetapi ada efek samping yang aneh: ketika program berhenti (jika Anda melampirkan sesi layar dan crtl-c ekor, atau membunuh ekor) jendela layar akan menutup.
Jadi perilakunya tidak sama dengan Crtl-A c dan jalankan perintah
Efek samping lainnya adalah Anda tidak dapat mengaitkan 2 perintah
screen
selalu berakhir ketika perintah yang diluncurkan berakhir - itu adalah fitur normal dari alat :) ..jadi jika Anda menjalankanscreen top
, ketika Anda berhentitop
,screen
akan berhenti juga