原因

子进程的stdout及stderr需要被设置为某个文件,根据文档 setupMaster 说明,需要设置stdio数组:

c.setupMaster({
exec: `${cwd}/c.js`,
stdio: [0, 1, 2, 'ipc']
})

其中,stdio中的项可以为数组。

小问题

master.js

let c = require('cluster');
let fs = require('fs');
let path = require('path');
let cwd = process.cwd(); let o = fs.createWriteStream(path.join(cwd, 'out.log'));
c.setupMaster({
exec: `${cwd}/c.js`,
stdio: [0, o, o, 'ipc']
}) c.fork();

c.js

console.log(13324)
console.error('error')

如果直接这样使用,则会抛错

throw new errors.TypeError('ERR_INVALID_OPT_VALUE', 'stdio',
^
TypeError [ERR_INVALID_OPT_VALUE]: The value "WriteStream"

原因是stdio中的stream对象还未准备好,因此需要提前创建流。

如下:

let c = require('cluster');
let fs = require('fs');
let path = require('path');
let cwd = process.cwd(); let o = fs.createWriteStream(path.join(cwd, 'out.log')); setTimeout(() => {
c.setupMaster({
exec: `${cwd}/c.js`,
stdio: [0, o, o, 'ipc']
}) c.fork();
},10)

最新文章

  1. OSGEarth编译
  2. sql特殊语句
  3. 剑指Offer 二叉搜索树的后序遍历序列
  4. contextloaderlistener
  5. Redis应用场景(转)
  6. 利用nginx泛域名解析配置二级域名和多域名
  7. Android 和iOS 中关于View 的一点知识
  8. IIS 之 HTTP 错误 403.14 - Forbidden
  9. PAT 1007
  10. Spring与SpringMVC的容器关系分析
  11. 关于openoffice英文乱码的问题
  12. VPS(Virtual Private Server 虚拟专用服务器)[转自百度]
  13. 2 MySQL安装
  14. ShardedJedis实现学习
  15. Linux(ubuntu)安装redis集群,redis集群搭建
  16. 4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」
  17. MySQL表添加自增列
  18. xueping wang 记录
  19. RabbitMQ系列(三)RabbitMQ交换器Exchange介绍与实践
  20. [转]用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口

热门文章

  1. 使用Typescript重构axios(十六)——请求和响应数据配置化
  2. lucas定理(模板题题解)
  3. 曹工杂谈:为什么很少需要改Spring源码,因为扩展点太多了,说说Spring的后置处理器
  4. Vue的指令以及组件化开发
  5. 使用 Zephir 轻松构建 PHP 扩展
  6. [javascript] 编写一个计算器,实现加减法
  7. PHP 富文本解码为 HTML 并显示
  8. pat 1002 A+B for Polynomials (25 分)
  9. Spring的整体架构的认识
  10. vue常用指令总结