【发布时间】:2016-09-16 03:40:28
【问题描述】:
我有这样的代码来生成子进程:
const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr'], {
detached: true
});
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
ls..on('error', (data) => {
console.log(`error: ${data}`);
});
ls.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
到目前为止,我可以从 stdout 和 stderr 控制台消息,并在完成任务后自动退出。
我的问题是:
什么情况下会去'error'事件?
子进程是否可能无法终止?如果是这样,什么时候会发生?
如果发生情况 2,当我的主进程已经终止时,如何杀死这些子进程?
【问题讨论】:
-
如果您需要澄清时可以提出与我的答案相关的问题,或者如果有道理就接受它作为答案,那就太好了。
标签: node.js child-process