【发布时间】:2010-10-22 19:39:30
【问题描述】:
我有一个长时间运行的进程,我需要它来启动另一个进程(它也会运行一段时间)。我只需要启动它,然后完全忘记它。
我设法通过从 Programming Ruby 书中获取一些代码来完成我需要的工作,但我想找到最佳/正确的方法,并了解正在发生的事情。这是我最初得到的:
exec("whatever --take-very-long") if fork.nil?
Process.detach($$)
那么,是这样吗,还是应该怎么做呢?
在检查了下面的答案后,我最终得到了这段代码,这似乎更有意义:
(pid = fork) ? Process.detach(pid) : exec("foo")
我希望能对 fork 的工作原理进行一些解释。 [已经知道了]
分离$$ 对吗?我不知道为什么会这样,我真的很想更好地了解情况。
【问题讨论】: