那么,谁应该守护?脚本还是调用者?

时间:2020-03-06 14:39:41  来源:igfitidea点击:

我一直在想谁应该做。在Ruby中,我们拥有Daemons库,该库允许Ruby脚本自行守护进程。然后,查看God(一个进程监视工具,类似于monit)页面,我发现God可以守护进程。

有任何明确的答案吗?

解决方案

我想说的是,让脚本更好地执行此操作。我在那里不知道过程监视工具,但是我认为用户可能会使用其他工具,这意味着最好使用脚本来执行。

如果可以设想以非守护程序方式运行脚本,则可以在脚本中添加一个选项以启用或者禁用守护程序。

我们可能无法获得明确的答案,因为我们通常都会以两种方式结束:进程可以守护自己,而进程监视器可以守护自己的子进程。

就我个人而言,出于某些原因,我更喜欢使用进程监视器或者脚本来执行此操作:
1.如果过程监视器希望紧跟其子进程以使其死亡,则可以选择不对其进行守护进程。当其子进程之一退出时,SIGCHLD将传递给监视器。在嵌入式系统中,我们经常这样做。
2.通常,在进行守护时,还可以设置euid和egid。我不想将每个系统级策略的知识(例如要使用的uid)编码到每个子进程中。
3.它允许重复使用与命令行工具或者守护程序相同的应用程序(我自由地承认这在实践中很少发生)。