javascript - 如何将输出 fork /集群进程通过管道传输到主 stdout/stderr

标签 javascript node.js process stdout stderr

在执行 worker = cluster.fork() 时,我希望能够将 stdout 和 stderr 流转发到主 Node.js 进程中。

我怎样才能做到这一点?

我尝试这样做:

worker = cluster.fork();
worker.process.stdout.pipe(process.stdout)
//             ^ this is null

解决方法是使用消息,但我希望能够流式传输内容。

worker.on("message", function(msg){
  console.log("Master says:" + msg);
});
...
worker.send({message:'hello'});
<小时/>

如何访问 fork 进程/集群的标准输出?

最佳答案

请看下面的代码

对于主进程:

const cluster = require('cluster');
cluster.settings.stdio=[0, 1, 2, 'ipc'];
cluster.settings.silent = true; //Whether or not to send output to parent's stdio. Default: false. 
cluster.settings.exec = './hello' //the forked process's file path
const childW = cluster.fork();
const child = childW.process;

对于 fork 进程:./hello.js

console.log('hello')

关于javascript - 如何将输出 fork /集群进程通过管道传输到主 stdout/stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52846069/

相关文章:

node.js - 将 greenlock-express 与 Web 套接字结合使用

node.js - 为什么字符串的utf8编码返回的字符串没有变化

c - 在子进程发出完成信号后,SIGKILL 将无法停止子进程

android - Android中进程、 Activity 、线程和任务之间的区别

javascript - 对于常量,首选默认导出.eslint(import/prefer-default-export)

javascript - Facebook 使用所有 Javascript……为什么?

javascript - 根据状态替换 <a> </a> 的类

javascript - JQuery 自动完成 - 防止破坏项目?

node.js - Nuxt js错误找不到页面目录

windows - 使用 taskkill/F 返回代码 0 终止进程