【发布时间】:2008-09-24 13:26:03
【问题描述】:
我总是想知道谁应该这样做。在Ruby 中,我们有Daemons 库,它允许Ruby 脚本自己守护进程。然后,查看God(一个进程监控工具,类似于monit)页面,我看到上帝可以守护进程。
有什么明确的答案吗?
【问题讨论】:
我总是想知道谁应该这样做。在Ruby 中,我们有Daemons 库,它允许Ruby 脚本自己守护进程。然后,查看God(一个进程监控工具,类似于monit)页面,我看到上帝可以守护进程。
有什么明确的答案吗?
【问题讨论】:
您可能无法得到明确的答案,因为我们通常会同时得到这两种情况:进程能够自行守护进程,而进程监视器能够守护其子进程。
出于以下几个原因,我个人更喜欢让进程监视器或脚本来执行此操作:
1. 如果进程监视器希望密切关注其子进程并在它们死后重新启动它们,它可以选择不守护它们。当其子进程之一退出时,将向监视器传递 SIGCHLD。在嵌入式系统中,我们经常这样做。
2. 通常在守护进程时,您还设置了 euid 和 egid。我不喜欢在每个子进程中编码系统级策略的知识,比如要使用的 uid。
3. 它允许重复使用相同的应用程序作为命令行工具或守护程序(我坦率地承认这在实践中很少发生)。
【讨论】:
我会说最好让你的脚本来做。我不知道那里的进程监控工具,但我认为用户可能会使用替代工具,这意味着让脚本来做会更好。
如果您可以设想脚本以非守护程序方式运行,我会在脚本中添加一个选项来启用或禁用守护程序。
【讨论】: