我是 Linux 程式「screen」的忠實粉絲,它允許我在 SSH 會話中啟動一個 screen,該會話在斷開連接後仍能保持活動狀態。有關螢幕的更多資訊請參閱此處
有沒有一種方法可以從命令列啟動螢幕會話,並在該螢幕會話中自動啟動另一個程式(或 .sh 腳本)?
我想將其添加到我的樹莓派的啟動序列中,以便始終有一個屏幕自動運行某些軟體,即使樹莓派重新啟動,這樣我就可以隨時通過ssh 進入樹莓派以查看該軟體的輸出。
我看過這個解決方案,但這只是部分幫助。它的啟動畫面是這樣的
screen -t "df" watch -n 10 df
並成功啟動“df”命令。
但是,當程式運行完畢後,螢幕會關閉並消失。
即使最初啟動的程式已完成,我也希望螢幕保持活動。
答案1
將命令更改為:
screen -t "df" bash -c 'watch -n 10 df; exec bash'
bash -c
: 使用bash-c運行多個命令。
exec bash
: 後df命令終止時,它將啟動一個 shell (bash),該 shell 在外部終止之前不會退出。
答案2
您可以透過在 shell 中執行命令來完成此操作,該 shell 在命令完成後仍保持運行狀態。
例如,在一旦執行的腳本結束,防止 GNU 螢幕終止會話,接受的答案做了一個
exec bash
在命令之後,在命令完成時啟動 shell。