В ожидании выхода Ruby-файла pid

пытаюсь разветвить подпроцесс, дождаться его завершения, если он незакончить за определенное время, убить его.

Это то, что я до сих пор:

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. Мой код на самом деле работает, но я просто нене знаю, как подойти к аспекту ожидания / убийства.

Ответы на вопрос(2)

Ваш ответ на вопрос