web-dev-qa-db-fra.com

Comment tuer childprocess dans nodejs?

Création d'un traitement à l'aide de 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);

Le processus enfant est toujours en cours d'exécution .. après la suppression du processus parent

54
Deepak Patil

Si vous pouvez utiliser le noeud intégré child_process.spawn , vous pouvez envoyer un signal SIGINT au processus enfant:

var proc = require('child_process').spawn('mongod');
proc.kill('SIGINT');

L'avantage de ceci est que le processus principal doit rester en place jusqu'à ce que tous les processus enfants soient terminés.

69
Michael Tang