【问题标题】:So, who should daemonize? The script or the caller?那么,谁应该守护进程?脚本还是调用者?
【发布时间】:2008-09-24 13:26:03
【问题描述】:

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

有什么明确的答案吗?

【问题讨论】:

    标签: daemon process-monitoring


    【解决方案1】:

    您可能无法得到明确的答案,因为我们通常会同时得到这两种情况:进程能够自行守护进程,而进程监视器能够守护其子进程。

    出于以下几个原因,我个人更喜欢让进程监视器或脚本来执行此操作:
    1. 如果进程监视器希望密切关注其子进程并在它们死后重新启动它们,它可以选择不守护它们。当其子进程之一退出时,将向监视器传递 SIGCHLD。在嵌入式系统中,我们经常这样做。
    2. 通常在守护进程时,您还设置了 euid 和 egid。我不喜欢在每个子进程中编码系统级策略的知识,比如要使用的 uid。
    3. 它允许重复使用相同的应用程序作为命令行工具或守护程序(我坦率地承认这在实践中很少发生)。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-15
        • 1970-01-01
        • 1970-01-01
        • 2017-03-25
        • 2011-03-22
        • 1970-01-01
        • 1970-01-01
        • 2012-03-17
        相关资源
        最近更新 更多