ruby - 运行守护进程,当某个组中的最后一个其他进程结束时,该守护进程将结束

标签 ruby linux mutex daemon semaphore

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

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

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

类比:所以守护进程应该类似于这几个 Ruby 进程的子进程,因为当所有“父”Ruby 进程都终止时,它也会终止。显然,据我所知,他不能是多个进程的子进程。

可以吗?很高兴听到有关跨平台解决方案(Linux、OS X、Windows/MRI、JRuby、Rubinius)的信息。

最佳答案

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

文档中有几个示例,看起来像您正在尝试执行的操作。

关于ruby - 运行守护进程,当某个组中的最后一个其他进程结束时,该守护进程将结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20693071/

相关文章:

c++ - 确保当前线程持有 C++11 互斥锁

c - 在 C 中对 pthreads 使用互斥锁/解锁和广播

ruby-on-rails - Gitlab PUSH 语法错误,意外 ':' ,期待 $end

ruby-on-rails - 使用单个 form_with 在 Rails 中创建和编辑嵌套资源

c - linux中子进程的系统限制

linux - Linux 关闭时终止进程前 SIGTERM 处理程序超时的配置位置

Ruby Monk - 了解继承 - 不接受替代解决方案?

ruby-on-rails - 在 Rails 中的资源管道中渲染部分

linux - 在具有多个 Controller 的服务器中分配内存时,操作系统是否会选择内存 Controller ?如何?

c++ - 没有用于初始化 std::lock_guard<std::mutex> 的匹配构造函数