¿Es posible asegurarse de que los procesos generados con node_j child_process se eliminen cuando el padre se destruye?node.js proceso generado se queda si se destruye el script
He aquí un ejemplo de script
var spawn = require('child_process').spawn;
var log_tail = spawn("tail", ["-f", "/dev/null"]);
setInterval(function() {
console.log('just chilling');
}, 10000);
Si miro el árbol de procesos veo esto:
$ 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
Luego, más tarde Tengo que dejar que el guión y no puedo Ctrl-C (digamos mi conexión ssh se pierde)
$ kill 10149
$ ps faux
ubuntu 10151 0.0 0.0 7184 608 pts/7 S 15:07 0:00 tail -f /dev/null
se puede ver que el proceso de la cola todavía está en marcha y se ha separado de cualquier pa alquilar.
¿Existe una forma de programa para matar un proceso engendrado si se mata al reproductor?
¿Hay una opción que pueda pasar para engendrar o debería usar un método diferente o necesito atrapar la señal de muerte (y eso funcionará para matar -9)?
Mi problema es todo lo contrario. Los procesos engendrados no se mantienen vivos si el padre muere, y eso es lo que quiero. – cprcrack
Actualización: parece suceder solo en Windows. – cprcrack