那么,我想要实现的目标是什么:
我正在运行主进程,它会分叉2个其他节点进程。我正在使用来自npm的this debug library,我需要将子进程的输出(调试函数函数)输出到父输出(stdout
,stderr
)。
目前我成功传输的是console.log("...");
但不是:
var log = require('debug')('service');
log.color = 3;
log("...");
我使用此代码分叉子进程:
var fork = require('child_process').fork;
var child_options = {
cwd: __dirname,
env: process.env,
stdio: [ 'ignore', process.stdout, process.stderr, 'ipc' ],
deatached: false,
shell: true
};
var job_node = fork('job_node', [], child_options);
任何人都可以帮我找出问题所在吗?谢谢 :)
编辑:这个问题可能不是由流管道中的某种错误引起的 - 而是存在与现有/不存在的控制台窗口,附加终端的东西。
当我尝试使用内置工具从PhpStorm中运行服务器时,它只显示console.log
函数输出甚至来自主进程。
TheKronnY
解决了:
只是为了尝试,我试图在主进程中使用debug.enable
函数,它工作。
我使用debug.enable('master,job,service');
在其他进程中启用使用的命名空间并且它有效,所以我不知道为什么,但默认情况下禁用在子进程中创建的其他命名空间。