Убить все child_process, когда процесс node убит
Как я могу убедиться, что все child_process будут убиты, когда родительский процесс будет убит.
У меня есть что-то вроде ниже.
Даже когда процесс node убит, я вижу, что FFMPEG продолжает работать, и вызывается out.avi. Как остановить работу FFMPEG после завершения процесса node.
var args = "ffmpeg -i in.avi out.avi"
child_process.exec(args , function(err, stdout,stderr){});
child_process.exec(args , function(err, stdout,stderr){});
Ответы
Ответ 1
Вам нужно прослушать событие выхода процесса и затем убить дочерние процессы. Это должно сработать для вас:
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();
});
Ответ 2
как использовать событие exit, поэтому, когда основной процесс вот-вот выйдет, вы можете убить child_process
process.on('exit', function() {
console.log('process is about to exit, kill ffmpeg');
child_process.kill();
});