Est-il possible de s'assurer que les processus engendrés par node.js child_process seront détruits lorsque le parent sera tué?node.js processus spawned reste si le script est tué
Voici un exemple de script
var spawn = require('child_process').spawn;
var log_tail = spawn("tail", ["-f", "/dev/null"]);
setInterval(function() {
console.log('just chilling');
}, 10000);
Si je regarde l'arbre de processus que je vois ceci:
$ ps faux
ubuntu 9788 0.0 0.0 73352 1840 ? S 15:04 0:00 | \_ sshd: [email protected]/7
ubuntu 9789 0.0 0.2 25400 6804 pts/7 Ss 15:04 0:00 | \_ -bash
ubuntu 10149 1.0 0.2 655636 8696 pts/7 Sl+ 15:07 0:00 | \_ node test.js
ubuntu 10151 0.0 0.0 7184 608 pts/7 S+ 15:07 0:00 | \_ tail -f /dev/null
Je dois ensuite plus tard pour arrêter ce script et ne peut pas ctrl-c (par exemple ma connexion ssh est perdue)
$ kill 10149
$ ps faux
ubuntu 10151 0.0 0.0 7184 608 pts/7 S 15:07 0:00 tail -f /dev/null
Vous pouvez voir que le processus de queue est toujours en cours d'exécution et a se détacher de toute pa location.
Existe-t-il un moyen de tuer un processus engendré si le géniteur est tué?
Existe-t-il une option que je peux passer pour générer ou dois-je utiliser une méthode différente ou ai-je besoin d'attraper le signal kill (et cela fonctionnera-t-il pour un kill -9)?
Mon problème est exactement le contraire. Les processus engendrés ne sont pas maintenus en vie si le parent meurt, et c'est ce que je veux. – cprcrack
Mise à jour: semble se produire uniquement sur Windows. – cprcrack