当前位置:  开发笔记 > 后端 > 正文

在Ruby中生成后台进程

如何解决《在Ruby中生成后台进程》经验,为你挑选了1个好方法。

我正在为学校项目编写一个ruby bootstrapping脚本,这个引导过程的一部分是启动一些后台进程(编写并正常运行).我想做的是:

`/path/to/daemon1 &`
`/path/to/daemon2 &`
`/path/to/daemon3 &`

但是,第一次调用时会阻塞执行daemon1.我已经看过一个Process.spawn方法的引用,但这似乎是一个1.9+的功能,我只限于Ruby 1.8.

我也尝试从不同的线程执行这些守护进程,但我希望我的引导脚本能够退出.

那么我怎样才能启动这些后台进程,以便我的引导脚本不会阻塞并且可以退出(但仍然让守护进程在后台运行)?



1> Marcel Jackw..:

只要您正在使用POSIX OS,就可以使用forkexec.

fork =创建子流程

exec =用另一个进程替换当前进程

然后,您需要通知您的主进程对创建的子进程不感兴趣Process.detach.

job1 = fork do
  exec "/path/to/daemon01"
end

Process.detach(job1)

...


根据文档,它不应该工作.分离并不意味着您的子进程不再是子进程.你想要的是'守护'它.
@ nes1983我从未声称`detach`可以做到这一点.我假设你在这里谈论真正的守护进程 - 然后,是的,分离(这个问题完全没有)不是你想要的.
推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有