【问题标题】:How to kill a child process which it is running parallely如何杀死并行运行的子进程
【发布时间】:2013-09-05 15:59:58
【问题描述】:

我生了很多孩子

var spawn = require('child_process').spawn,
  newProcess1 = spawn('node', ['File1.js']),
  newProcess2 = spawn('node', ['File2.js']),
  newProcess3 = spawn('node', ['File3.js']);

它将并行运行。如果 newProcess1 失败,则 newProcess2 和 newProcess3 如果尚未启动,则必须停止或终止。

如何杀死子进程?

【问题讨论】:

  • 这个newProcess1.kill();怎么样
  • @Amol M Kulkarni newProcess1 将失败它应该与 newProcess2 和 newProcess3 同时被杀死

标签: multithreading node.js asynchronous child-process


【解决方案1】:
newProcess1.on('close', function (code) { 
  console.log('child process ' + newProcess1.pid + ' exited with code ' + code); 
  newProcess2.kill();
  newProcess3.kill();
});

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

【讨论】:

  • 我应该在代码的哪一部分提到 newProcess2.kill(); newProcess3.kill(); ?
  • 这是我调用所有进程的方式 newProcess.stdout.on('data', function (data) { console.log('stdout: ' + data); }); newProcess.stderr.on('data', function (data) { console.log('stderr: ' + data); }); newProcess.on('close', function (code) { console.log('child process' + newProcess.pid + ' exited with code ' + code); });
  • 在 process1 的关闭回调中杀死它们
  • 是否可以在此代码中调用外部文件而不是将字符串传递给子项。 var cp = require('child_process'); var child = cp.fork('./worker'); child.on('message', function(m) { // 从子进程接收结果 console.log('received: ' + m); }); // 给子进程发送一些工作 child.send('请大写这个字符串');
猜你喜欢
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-08
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多