我正在尝试分叉一个子进程,等待它完成,如果它在一定时间内没有完成,就杀死它。
这是我到目前为止所拥有的:
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 秒,如果该进程仍然存在,我想杀死它并将输出标记为“错误”。
我是 fork/exec 的新手。我的代码实际上分叉有效,但我只是不知道如何处理它的等待/杀死方面。