当node.js进程退出时,如何杀死所有子进程(使用child_process.spawn生成)?

最佳答案

我认为唯一的方法是保留对ChildProcess返回的spawn对象的引用,并在退出主进程时将其杀死。

一个小例子:

var spawn     = require('child_process').spawn;
var children  = [];

process.on('exit', function() {
  console.log('killing', children.length, 'child processes');
  children.forEach(function(child) {
    child.kill();
  });
});

children.push(spawn('/bin/sleep', [ '10' ]));
children.push(spawn('/bin/sleep', [ '10' ]));
children.push(spawn('/bin/sleep', [ '10' ]));

setTimeout(function() { process.exit(0) }, 3000);

关于node.js - 如何在退出时杀死所有子进程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15833047/

10-13 07:52