【问题标题】:Run daemon process that will end when last of other processes from some group ends运行守护进程,该进程将在某个组中的最后一个其他进程结束时结束
【发布时间】:2014-01-08 16:37:50
【问题描述】:

我想运行几个 Ruby 进程,它们将(通过 HTTP)与另一个“服务”守护进程进行通信。 Daemon 进程是一个普通程序,而不是 Ruby 进程。

Ruby 进程可以按任何顺序启动。第一个将启动“服务”进程并使用它。其他 Ruby 进程将使用它。

当最后一个 Ruby 进程结束时,守护进程“服务”进程应该死掉(即使所有 Ruby 进程都被杀死,守护进程也应该死掉)。

类比:所以守护进程应该类似于这几个 Ruby 进程的子进程,因为它会在所有“父”Ruby 进程都死掉时死掉。显然,AFAIK 他不可能是多个进程的子进程。

有可能吗?很高兴了解跨平台解决方案(Linux、OS X、Windows / MRI、JRuby、Rubinius)。

【问题讨论】:

    标签: ruby linux mutex daemon semaphore


    【解决方案1】:

    你打赌。查看Process 模块。具体来说,waitpid 方法将阻止进程退出,直到给定的 PID 退出。

    文档中有几个示例看起来像您正在尝试做的事情。

    【讨论】:

    • 我不明白它对我有什么帮助。 waitpid 仅适用于子进程。我不明白哪个进程应该是子进程。
    猜你喜欢
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 2023-03-02
    相关资源
    最近更新 更多