Ssh

當遠端主機斷開連接時,遠端執行程序會發生什麼?

  • January 19, 2016

說,我 ssh 進入遠端主機,在其上啟動幾個程序並在程序終止之前斷開連接。程序會發生什麼?

他們繼續嗎?

由於該程序是您通過 ssh 打開的 shell 的子程序,因此一旦您從 shell 註銷(例如通過斷開連接),該程序就會終止。

您可以使用不同的方法來解決此問題:

  1. 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

您現在又回到了您離開的外殼中。

引用自:https://unix.stackexchange.com/questions/256320