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.