kill all child_process when node process is killed

后端 未结 2 1270
孤城傲影
孤城傲影 2021-02-05 04:56

How do i make sure all child_process are killed when the parent process is killed. I have something like the below one.

Even when the node process is kill i see that F

相关标签:
2条回答
  • 2021-02-05 05:03

    You could listen for exit process event, so when the main process is about to exit you have time to call kill method on the ffmpeg child process

    var args = "ffmpeg -i in.avi out.avi"
    var ffmpegChildProccess = child_process.exec(args , function(err, stdout,stderr){});
    
    process.on('exit', function() {
      console.log('process is about to exit, kill ffmpeg');
      ffmpegChildProccess.kill();
    });
    

    Edit: as comments are mentioning and fakewaffle solution got right, kill is not to be called in child_process but in the reference to the child process that you get when performing exec.
    Also I remove the "what a about ..." because was unnecessary and unintentionally I realise it was sounding harsh when reading it out loud.

    0 讨论(0)
  • 2021-02-05 05:13

    You need to listen for the process exit event and kill the child processes then. This should work for you:

    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();
    });
    
    0 讨论(0)
提交回复
热议问题