我正在使用带有队列处理器的 resque,作为其执行的一部分,它将启动一个 shell 进程。目前,我正在使用PTY.spawn()
调用 shell 命令并处理其输出。
我想扩充这段代码,以便可以给出一个数量(N)(在虚拟机上执行的命令,我希望能够通过一次调用启动一个可变数字),并让 shell 进程被调用 N 次单独的进程,第 N 个调用不必等待调用 N-1 完成,依此类推。我还想从每次调用中捕获所有 STDOUT,以便在调用完成后对输出进行处理。
我已经看过了,Kernel::fork
但是分叉块内的代码范围与其父级不同(出于非常明显的原因)。
我可以使用什么工具来独立生成每个进程,捕获它们的输出,并且我仍然可以让父进程等待它们全部完成后再继续?