我有两个单独的节点应用程序。我希望其中一个能够在代码中的某个时刻启动另一个。我将如何去做?
使用child_process.fork()
。它与相似spawn()
,但是用于创建V8的全新实例。因此,它专门用于运行Node的新实例。如果您只是执行命令,请使用spawn()
或exec()
。
var fork = require('child_process').fork;
var child = fork('./script');
请注意,fork()
默认情况下使用时,stdio
流与父级关联。这意味着所有输出和错误都将在父进程中显示。如果您不希望与父级共享流,则可以stdio
在选项中定义属性:
var child = fork('./script', [], {
stdio: 'pipe'
});
然后,您可以将流程与主流程的流分开处理。
child.stdin.on('data', function(data) {
// output from the child process
});
另请注意,该过程不会自动退出。您必须process.exit()
从生成的Node进程中进行调用才能退出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句