假设我有一个像下面这样的函数,我如何捕获 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
谢谢。