我总是想知道谁应该这样做。在Ruby中,我们有Daemons库,它允许Ruby脚本自己进行守护。然后,看一下God(一个过程监控工具,类似于monit)页面,我看到上帝可以守护进程。
那里有任何确定的答案?
答案 0 :(得分:2)
你可能无法获得明确的答案,因为我们通常最终都会得到这两个答案:该进程具有守护自身的能力,并且进程监视器能够对其子进程进行守护。
我个人更喜欢让流程监控器或脚本执行此操作,原因如下:
1.如果过程监视器希望密切关注其子项,如果它们死亡则重新启动它们,它可以选择不对它们进行守护。当其中一个子进程退出时,SIGCHLD将被发送到监视器。在嵌入式系统中,我们做了很多
2.通常在守护进程时,您还可以设置euid和egid。我不想在每个子进程中编码系统级策略的知识,比如使用uid
3.它允许重复使用与命令行工具或守护进程相同的应用程序(我自愿承认这在实践中很少发生)。
答案 1 :(得分:1)
我想说你的脚本做得更好。我不知道那里的过程监控工具,但我认为用户可能会使用替代工具,这意味着让脚本更好。
如果你能想象以非守护进程的方式运行脚本,我会在脚本中添加一个选项来启用或禁用守护进程。