了解後台程序何時終止

了解後台程序何時終止

我有一個腳本,它啟動多個後台進程,並且從命令列調用時工作正常。

然而,在我的 xsession 啟動期間以及一些 udev 事件中也會呼叫相同的腳本。在這兩種情況下,後台程序都會消失。

我在腳本中放入了 sleep 10 ,我可以看到 bg 進程確實已啟動,但是一旦腳本存在,它就會佔用 bg 進程。我嘗試透過呼叫 bg 進程來解決start_stop_deamon --background,但這沒有什麼區別。然而,我可以從控制台調用腳本並退出會話,並且 bg 進程仍在運行。

除了解決我眼前的問題(儘管我們將不勝感激任何幫助)之外,我還熱衷於了解這一切背後的邏輯。我懷疑與缺少終端有關。

答案1

透過以下方式保護您的流程nohup

nohup command-name &

如果您想忽略 stdout 和 stderr 重新導向到 nohup.out,也可以使用此技術:

command-name & disown

相關內容