Dav*_*ong 40 ruby background-process
我正在为学校项目编写一个ruby bootstrapping脚本,这个引导过程的一部分是启动一些后台进程(编写并正常运行).我想做的是:
`/path/to/daemon1 &`
`/path/to/daemon2 &`
`/path/to/daemon3 &`
Run Code Online (Sandbox Code Playgroud)
但是,第一次调用时会阻塞执行daemon1.我已经看过一个Process.spawn方法的引用,但这似乎是一个1.9+的功能,我只限于Ruby 1.8.
我也尝试从不同的线程执行这些守护进程,但我希望我的引导脚本能够退出.
那么我怎样才能启动这些后台进程,以便我的引导脚本不会阻塞并且可以退出(但仍然让守护进程在后台运行)?
Mar*_*rth 67
只要您正在使用POSIX OS,就可以使用fork和exec.
fork =创建子流程
exec =用另一个进程替换当前进程
然后,您需要通知您的主进程对创建的子进程不感兴趣Process.detach.
job1 = fork do
exec "/path/to/daemon01"
end
Process.detach(job1)
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24355 次 |
| 最近记录: |