nodejs node example child_process child javascript node.js child-process

javascript - node - process spawn



Inicie otra aplicaciĆ³n de nodo usando node.js? (2)

Tengo dos aplicaciones de nodo separadas. Me gustaría que uno de ellos pueda iniciar el otro en algún punto del código. ¿Cómo voy a hacer esto?


Puede usar el módulo child_process, que le permitirá ejecutar procesos externos.

var childProcess = require(''child_process''), ls; ls = childProcess.exec(''ls -l'', function (error, stdout, stderr) { if (error) { console.log(error.stack); console.log(''Error code: ''+error.code); console.log(''Signal received: ''+error.signal); } console.log(''Child Process STDOUT: ''+stdout); console.log(''Child Process STDERR: ''+stderr); }); ls.on(''exit'', function (code) { console.log(''Child process exited with exit code ''+code); });

http://docs.nodejitsu.com/articles/child-processes/how-to-spawn-a-child-process


Use child_process.fork() . Es similar a spawn() , pero se usa para crear instancias enteras de V8. Por lo tanto, se usa especialmente para ejecutar nuevas instancias de Node. Si solo está ejecutando un comando, entonces use spawn() o exec() .

var fork = require(''child_process'').fork; var child = fork(''./script'');

Tenga en cuenta que al usar fork() , de manera predeterminada, las corrientes stdio están asociadas con el padre. Esto significa que todos los resultados y errores se mostrarán en el proceso principal. Si no desea que las transmisiones se compartan con el padre, puede definir la propiedad stdio en las opciones:

var child = fork(''./script'', [], { stdio: ''pipe'' });

Luego puede manejar el proceso por separado de las transmisiones del proceso maestro.

child.stdin.on(''data'', function(data) { // output from the child process });

También tenga en cuenta que el proceso no se cierra automáticamente. Debe llamar a process.exit() desde dentro del proceso del nodo generado para que salga.