我正在为一个学校项目编写一个ruby引导脚本,并且这个引导过程的一部分是启动几个后台进程(它们被写入并正常工作)。我想要做的事情是:在Ruby中产生一个后台进程
`/path/to/daemon1 &`
`/path/to/daemon2 &`
`/path/to/daemon3 &`
但是,这会阻止第一次调用以执行daemon1。我已经看到了对Process.spawn
方法的引用,但这似乎是1.9+的特性,而我仅限于Ruby 1.8。
我也试过从不同的线程执行这些守护进程,但我希望我的引导脚本能够退出。
那么我如何启动这些后台进程,以便我的引导脚本不会阻塞并可以退出(但仍然有守护进程在后台运行)?
如果您正在寻找更大的东西(但仍在同一主机上),请考虑daemon_controller。 http://blog.phusion.nl/2008/08/25/daemon_controller-a-library-for-robust-daemon-management/ – Levi
完美!我知道'fork'和'exec'(来自C背景),但是我错过了'Process.detach()'。谢谢! –
对于我而言,OSX Lion和预安装的红宝石并不像预期的那样工作。 – nes1983