我在 ruby 中使用“fork”选项,如下所示:
pid1 = fork do
pid1_output = `ruby scrape1.rb`
puts "#{pid1_output}"
puts ""
exit
end
pid2 = fork do
pid2_output = `ruby scrape2.rb`
puts "#{pid2_output}"
puts ""
exit
end
pid3 = fork do
pid3_output = `ruby scrape3.rb`
puts "#{pid3_output}"
puts ""
exit
end
pid4 = fork do
pid4_output = `ruby scrape4.rb`
puts "#{pid4_output}"
puts ""
exit
end
Process.waitall
这里的问题是,有时其中一个进程(例如ruby scrape1.rb
:)可能会失败或最终返回大量无法在变量中捕获的文本......我如何仍然同时运行 4 个进程并在一个终端中查看它们的所有输出实时窗口?我知道输出的顺序可能会被混淆,但没关系..我基本上想将每个分叉进程的 STDOUT 和 STDERR 重新路由到主程序..这样我就可以看到我的每个人都在刮什么刮板并在它们发生时跟踪它们的进度和错误。