ile birlikte yaşanmıyor Yeni bir işlemi engellemek için child_process.exec
/child_process.spawn
kullandım ve child.kill
/process.kill
kullanarak öldürün. cat
/ls
gibi basit ikili yürütücülerle iyi çalışır ve alt işlem yalnızca öldürülür.Çocuk işlemi, Node.JS
Ancak ne zaman komut (diyelim P1)o çatallar başka çocuk süreç (diyelim P2) olsun, yalnızca komut yorumlayıcı P1 öldürüyorlar, yok çocuk süreç P2.
SORU: Böyle bir çocuk işlemi P2'nin Node.JS ile öldürülmesinin bir yolu var mı?
Kod run_and_kill('firefox')
ile run_and_kill('ls -Al /usr/lib')
ince ama tamam değil çalışır:
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();
}
el ile öldürmeyi deneyebilirsiniz (muhtemelen P2 SIGHUP'u göz ardı eder) - http://stackoverflow.com/questions/392022/best-way-to-kill-all-child-processes –
@AndreySidorov El ile nasıl öldürülür w PID'ini biliyor mu? – Ghostoy
bunu biliyorsunuz - 'ls.pid' (https://github.com/joyent/node/blob/master/lib/child_process.js#L250) –