标签: ruby
有没有办法等待任何(不是全部!)子进程完成?我正在写一个Rake任务,它产生了几个子进程,我想在第一个子进程完成后立即开始一个动作。
答案 0 :(得分:3)
致电
Process.wait
没有参数。这等待任何子进程终止(请参阅docs
您还可以等待特定流程组的子项 - 如果您需要更多控制,则可能很有用。
答案 1 :(得分:0)
一种解决方案是,您可以使用以下内容查找进程是否仍在运行:
begin Process.getpgid( pid ) true rescue Errno::ESRCH false end
现在您可以检查流程(轮询),一旦结束,您可以根据需要触发其他流程。