以下のような関数があるとしましょう。Process.spawn呼び出しの出力をキャプチャするにはどうすればよいですか?また、指定されたタイムアウトよりも時間がかかる場合は、プロセスを強制終了できるはずです。
関数もクロスプラットフォーム(Windows / Linux)である必要があることに注意してください。
def execute_with_timeout!(command)
begin
pid = Process.spawn(command) # How do I capture output of this process?
status = Timeout::timeout(5) {
Process.wait(pid)
}
rescue Timeout::Error
Process.kill('KILL', pid)
end
end
ありがとう。