Tengo un servicio que necesita mantener múltiples procesos bifurcados en un round robin. Cuando termino con un proceso, no llamo a child.kill() , sino que simplemente cambio una matriz (elimino el objeto de referencia) que contiene los objetos secundarios.
utiliza el nodo v11.0.0
const children = [ child_process.fork('../script.js'), child_process.fork('../script.js') ]; console.log( children.map(c => c.connected) ); // [true, true] child.shift(); console.log( children.map(c => c.connected) ); // [true]Después del cambio, ¿el proceso principal elimina completamente el proceso secundario eliminado?
Después del cambio, ¿el proceso principal elimina completamente el proceso secundario eliminado?
No. Un proceso secundario es una cosa del nivel del sistema operativo, no una cosa de Javascript. No se verá afectado por la recolección de basura en la forma en que lo describe. Si quiere que el niño salga, debe matarlo o enviarle un mensaje diciéndole que salga.