В ожидании выхода рубинового детского пида
пытаюсь разветвить подпроцесс, дождаться его завершения, если он незакончить за определенное время, убить его.
Это то, что я до сих пор:
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 секунд, и если процесс все еще там, яЯ хотел бы убить его и пометить вывод как "ОШИБКА. "Я
Я новичок в форк / exec. Мой код на самом деле работает, но я просто нене знаю, как подойти к аспекту ожидания / убийства.