我正在尝试分叉一个子进程,等待它完成,如果在一定时间内没有完成,就杀死它。
以下是我目前的代码:
以下是我目前的代码:
servers.each do |server|
pid = fork do
puts "Forking #{server}."
output = "doing stuff here"
puts output
end
Process.wait
puts "#{server} child exited, pid = #{pid}"
end
在进程的Process.wait后面或周围,我希望有一种实用工具来等待20秒钟,如果该进程仍然存在,我希望将其终止并将输出标记为“ERROR”。
我刚接触fork/exec。我的代码实际上可以进行分叉,但我不知道如何处理等待/杀死方面的问题。