Ssh
當遠端主機斷開連接時,遠端執行程序會發生什麼?
說,我 ssh 進入遠端主機,在其上啟動幾個程序並在程序終止之前斷開連接。程序會發生什麼?
他們繼續嗎?
由於該程序是您通過 ssh 打開的 shell 的子程序,因此一旦您從 shell 註銷(例如通過斷開連接),該程序就會終止。
您可以使用不同的方法來解決此問題:
nohup
以(不掛斷)啟動程序並拒絕它:nohup somecommand & disown %1
這會將所有輸出重定向到文件
$PWD/nohup.out
,如果要丟棄輸出,請將其通過管道傳輸到/dev/null
(介於somecommand
和&
) 2. 使用終端多路復用器,例如 GNU Screen 或 tmux:tmux #Inside tmux somecommand
Ctrl
然後使用+從 tmux 會話中分離B
,然後使用D
. 您現在可以安全地斷開連接。當您想在另一個 shell 中恢復 tmux 會話時,只需執行tmux a
您現在又回到了您離開的外殼中。