Я использовал 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();
}