2011-11-01 26 views
0

如果我是一個遠程服務器(SSH)和我使用bash &運營商創建一個進程的工作,將這一過程進行,如果我啓動關閉服務器由於服務器超時被殺?我很確定答案是肯定的,但很想知道是否有任何多汁的細節。分叉進程(bash)是否受到服務器超時斷開的影響?

+0

我不知道這是否屬於這裏對serverfault或超級用戶。 – mkb

回答

2

它可能取決於,但通常當你註銷你的「連接程序」(例如ssh在你的情況下,雖然它也可能是rlogin或telnet),shell和children(我認爲?)會收到SIGHUP信號(掛斷),當您註銷時它們會終止。有兩種常見的方法來避免這種情況,運行您想要通過nohupscreen繼續運行的程序。如果服務器在運行過程中有其他時間限制,您將不得不考慮這一點。

+0

對,屏幕也可以工作,而且有些平臺的程序可以將未經過屏蔽的程序從其終端手中奪走並附加到屏幕實例上。 – mkb

2

bash將一個HUP信號發送給所有後臺作業。你可以通過nohup(它應該有一個手冊頁)開始工作來阻止這種情況的發生。如果nohup爲時已晚,可以使用disown來阻止shell向作業發送HUP。 disown是一個內建的,所以help disown會告訴你你需要知道的一切。

相關問題