關閉/重新啟動 ssh 會話會殺死在該會話上執行的程式嗎?

關閉/重新啟動 ssh 會話會殺死在該會話上執行的程式嗎?

我正在使用 Web 控制台 ssh 到 aws 實例。然後我啟動 xrdp 會話,但該會話不會透過 ssh 進行。

但是,當我重新啟動或停止此ssh 會話時,我在此會話中運行的所有內容也會被終止(例如xrdp),即使我已使用“&”將其分叉到後台,我也不知道這是否是預期行為或與透過瀏覽器會話的 ssh 相關。解決這個問題並且不殺死本次會議中每個程序的想法將非常感激:)

答案1

這是預期的行為,因為當終端控制進程退出時,它會SIGHUP向其所有子進程發送訊息以通知它們終端已掛起。如何SIGHUP處理僅取決於子進程。將進程置於後台不會阻止訊號,它只是將子進程與終端分離。阻止掛斷訊號你應該運行你的程序nohup,例如nohup myprogram &。在大多數情況下這應該可以完成工作。

相關內容