Erstellt einen untergeordneten Prozess mit shelljs
!/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);
Der untergeordnete Prozess wird noch ausgeführt. Nach dem Beenden des übergeordneten Prozesses
node.js
shell
child-process
Deepak Patil
quelle
quelle
mongod &
was den Prozess abspaltet und an den Hintergrund sendet. Das Senden von SIGINT beendet den eigentlichenmongod
Prozess nicht.sudo mongod
, ausführenmongod
und ausführen mitsudo
. Sie können Berechtigungen nach der Ausführungmongod
(mitprocess.setuid()
undprocess.setgid()
) löschen, wenn Sie möchten.Antworten:
Wenn Sie die integrierten Knoten verwenden können
child_process.spawn
, können Sie einSIGINT
Signal an den untergeordneten Prozess senden :var proc = require('child_process').spawn('mongod'); proc.kill('SIGINT');
Ein Vorteil davon ist, dass der Hauptprozess so lange bestehen bleiben sollte, bis alle untergeordneten Prozesse beendet sind.
quelle
mongod
, aber das Sendenproc.kill()
ist (derzeit) gleichbedeutend mit dem Sendenproc.kill('SIGTERM')
(ich gehe davon aus, dass ich dachte, esSIGINT
würde heruntergefahrenmongod
?). Ich stelle mir vor, dass man das richtige Signal für die jeweilige Anwendung auswählen würde..kill('SIGINT')
hervorbrachte und den Trick ausführte und alle untergeordneten und untergeordneten Prozesse in meiner Elektronenknoten-Anwendung