了解后台进程何时终止

了解后台进程何时终止

我有一个脚本,它启动多个后台进程,并且从命令行调用时工作正常。

然而,在我的 xsession 启动期间以及一些 udev 事件中也会调用相同的脚本。在这两种情况下,后台进程都会消失。

我在脚本中放入了 sleep 10 ,我可以看到 bg 进程确实已启动,但是一旦脚本存在,它就会占用 bg 进程。我尝试通过调用 bg 进程来解决start_stop_deamon --background,但这没有什么区别。然而,我可以从控制台调用脚本并退出会话,并且 bg 进程仍在运行。

除了解决我眼前的问题(尽管我们将不胜感激任何帮助)之外,我还热衷于了解这一切背后的逻辑。我怀疑与缺少终端有关。

答案1

使用以下方式保护您的流程nohup

nohup command-name &

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

command-name & disown

相关内容