子进程没有调用关闭事件

时间:2014-03-19 10:58:06

标签: node.js child-process

我有以下node.js代码:

var testProcess = spawn(item.testCommand, [], {
  cwd: process.cwd(),
  stdio: ['ignore', process.stdout, process.stderr]
});

testProcess.on('close', function(data) {
  console.log('test');
});

waitpid(testProcess.pid);
testProcess.kill();

然而close方法永远不会被调用。

我正在寻找的最终结果是我spwan一个进程,然后脚本等待子进程完成(waitpid()正确执行)。我希望子进程的输出/错误显示在屏幕上(stdio配置正确执行)。我也想在子进程结束时执行代码,我将在close事件中执行(也尝试退出),但它不会触发。

为什么事件不会被解雇?

2 个答案:

答案 0 :(得分:0)

http://nodejs.org/api/process.html

Note that just because the name of this function is process.kill, it is really just a signal sender, like the kill system call. The signal sent may do something other than kill the target process.

您可以在Kill()调用时指定信号。

答案 1 :(得分:0)

查看waitpid()我发现它返回一个带有exitCode的对象。我更改了代码,以便根据exitCode的值执行某些操作。