Utworzony childprocess korzystając shelljsJak zabić dziecko w nodejs?
!/usr/bin/env node
require('/usr/local/lib/node_modules/shelljs/global');
fs = require("fs");
var child=exec("sudo mongod &",{async:true,silent:true});
function on_exit(){
console.log('Process Exit');
child.kill("SIGINT");
process.exit(0)
}
process.on('SIGINT',on_exit);
process.on('exit',on_exit);
proces dziecko nadal działa .. po zabić proces nadrzędny
Używasz 'mongod &', który przesyła proces i wysyła go do tła. wysłanie ** SIGINT ** nie zabije rzeczywistego procesu 'mongod'. – fardjad
Jeszcze jedno, zamiast wykonywania 'sudo mongod', wykonaj' mongod' i uruchom skrypt za pomocą 'sudo'. Możesz przywrócić uprawnienia po wykonaniu 'mongod' (z' process.setuid() 'i' process.setgid() ') jeśli chcesz. – fardjad
usunięte "&" i działało .... dzięki http://stackoverflow.com/users/303270/fardjad –