当节点进程被终止时,终止所有的child_process

如何确保所有child_process在父进程被终止时被终止。 我有像下面这样的东西。

即使当节点进程被杀死,我看到FFMPEG继续运行,out.avi生成。 如何在节点进程退出后停止运行FFMPEG。

var args = "ffmpeg -i in.avi out.avi" child_process.exec(args , function(err, stdout,stderr){}); child_process.exec(args , function(err, stdout,stderr){}); 

您需要监听进程退出事件,然后终止subprocess。 这应该为你工作:

 var args = "ffmpeg -i in.avi out.avi" var a = child_process.exec(args , function(err, stdout,stderr){}); var b = child_process.exec(args , function(err, stdout,stderr){}); process.on('exit', function () { a.kill(); b.kill(); }); 

如何使用退出事件,所以当主进程即将退出时,可以杀死child_process

 process.on('exit', function() { console.log('process is about to exit, kill ffmpeg'); child_process.kill(); });