node.js:child_process.exec()的回调函数是否可以返回进程PID

Dan*_*art 2 exec node.js

Node.JS执行问题:

我有一个产生多个进程的程序,我想通过在进程完成时捕获PID来记录进程完成的顺序。据我所知,标准回调不包含PID(stdout,stderr和error)。

我想避免使用spawn,但是除非有任何善良的主意,否则我将不得不这样做。

提前致谢。

编辑:

澄清:

var child = child_process.exec(..., function() {
    console.log( child.pid );
});
Run Code Online (Sandbox Code Playgroud)

不适用于多个进程。这将返回最后一个过程,而不是触发回调的过程。

fre*_*ish 5

var child = child_process.exec(..., function() {
    console.log( child.pid );
});
Run Code Online (Sandbox Code Playgroud)

我强烈建议您阅读文档 -您可能会在这里找到所有问题的答案。:)

//编辑如果使用循环创建进程,请像这样使用它:

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 );
}
Run Code Online (Sandbox Code Playgroud)

以避免范围问题。