我有一个产生多个进程的程序,我想通过在进程完成时捕获PID来记录进程的顺序。据我所知,标准回调不包括PID(stdout,stderr和error)。
我想避免使用spawn,但看起来我不得不这样做,除非任何善良的人有一些想法。
提前致谢。
编辑:
澄清:
var child = child_process.exec(..., function() {
console.log( child.pid );
});
不适用于多个进程。这将返回最后一个进程,而不是触发回调的进程。
答案 0 :(得分:4)
var child = child_process.exec(..., function() {
console.log( child.pid );
});
我强烈建议您阅读the documentation - 您可能会在那里找到所有问题的答案。 :)
//编辑如果您使用循环来创建流程,那么就像这样使用它:
var create_child = function( i ) {
// creates a seperate scope for child variable
var child = child_process.exec(..., function() {
console.log( child.pid );
});
};
for (var i = 0; i < 100; i++) {
// does not create a seperate scope
create_child( i );
}
避免确定范围问题。
答案 1 :(得分:1)
经过一番搜索和短暂的喝咖啡休息后,我确信child_process.spawn是最佳选择。使对象数组处理进程,并在退出时删除这些进程对象似乎运行良好。