Ruby:等待任何子进程完成

wgx48brx  于 5个月前  发布在  Ruby
关注(0)|答案(2)|浏览(60)

有没有办法等待任何(不是所有!)子进程完成?我正在编写一个Rake任务,它会产生几个子进程,我想在第一个子进程完成后立即开始一个操作。

gxwragnw

gxwragnw1#

就叫

Process.wait

字符串
等待任何子进程终止(参见文档)
您还可以等待特定进程组的子进程-如果您需要更多控制,这可能很有用。

nfs0ujit

nfs0ujit2#

一种解决方案可以是,您可以使用以下命令来查找进程是否仍在运行:

begin
  Process.getpgid( pid )
  true
rescue Errno::ESRCH
  false
end

字符串
现在你可以对进程进行检查(轮询),一旦结束,你可以根据需要触发其他进程。

相关问题