我总是想知道谁应该这样做。在 Ruby 中,我们有 Daemons 库,允许Ruby脚本自己守护。然后,查看上帝(一个过程监控工具,类似于 monit )页面,我看到上帝可以守护进程。

那里有任何明确的答案吗?

有帮助吗?

解决方案

你可能无法获得明确的答案,因为我们通常最终都会得到这两个答案:该进程具有守护自身的能力,并且进程监视器能够对其子进程进行守护。

我个人更喜欢让进程监视器或脚本执行此操作,原因如下:
1.如果过程监视器希望密切关注其子项,如果它们死亡则重新启动它们,它可以选择不对它们进行守护。当其中一个子进程退出时,SIGCHLD将被发送到监视器。在嵌入式系统中,我们做了很多。
2.通常在守护进程时,您还可以设置euid和egid。我不想在每个子进程中编码系统级策略的知识,比如使用uids 3.它允许重复使用与命令行工具或守护进程相同的应用程序(我自愿承认这在实践中很少发生)。

其他提示

我想说你的脚本做得更好。我不知道那里的过程监控工具,但我认为用户可能会使用替代工具,这意味着让脚本更好。

如果你能想象以非守护进程的方式运行脚本,我会在脚本中添加一个选项来启用或禁用守护进程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top