サブプロセスをフォークしようとしています。終了するのを待ちます。一定の時間内に終了しない場合は、サブプロセスを強制終了します。
これは私がこれまでに持っているものです:
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を初めて使用します。私のコードは実際にフォークしますが、それの待機/殺害の側面にアプローチする方法がわかりません。