Я использовал child_process.exec/child_process.spawn, чтобы разблокировать новый процесс, а затем убить его с помощью child.kill/process.kill. Он отлично работает с простыми бинарными исполняемыми файлами, такими как cat/ls, и дочерний процесс просто убивается.
Однако, когда вы получаете сценарии (скажем, P1), что выдает еще один дочерний процесс (скажем, P2), только интерпретатор script P1 убивается, а не дочерний процесс P2.
ВОПРОС: существует ли какой-либо способ получения такого дочернего процесса P2, убитого с помощью Node.JS?
Код работает нормально с run_and_kill('ls -Al /usr/lib'), но не ОК с run_and_kill('firefox'):
function run_and_kill(cmd) {
var exec = require('child_process').exec,
ls = exec(cmd);
console.log('Child process started: %d', ls.pid);
ls.on('exit', function(code, signal) {
console.log('exit with code %s and signal %s', code, signal);
});
ls.kill();
}