了解后台进程何时终止

Mar*_*urg 6 shell job-control process-management daemon

我有一个脚本,它启动许多后台进程,如果从 cmdline 调用时工作正常。

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

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

除了解决我眼前的问题(尽管非常感谢任何帮助),我很想了解这一切背后的逻辑。我怀疑与缺少终端有关。

Hoj*_*eri 3

通过以下方式保护您的流程nohup

nohup command-name &
Run Code Online (Sandbox Code Playgroud)

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

command-name & disown
Run Code Online (Sandbox Code Playgroud)