【发布时间】:2019-01-27 10:32:42
【问题描述】:
我想创建一个rabbitmq cli,像foreverjs 一样使用node.js 运行。它可以生成 child_process 并使其在后台运行,并且可以随时与 child_process 通信。我面临的问题是当主 cli 程序退出时 child_process 似乎也停止运行,我尝试使用 detached:true 和 .unref() 进行分叉,但它不起作用。即使在父调用者进程退出后,我如何在后台运行子进程?
cli.js - 父级
const { fork, spawn } = require('child_process');
const options = {
stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
slient:true,
detached:true
};
child = fork('./rabbit.js', [], options)
child.on('message', message => {
console.log('message from child:', message);
child.send('Hi');
// exit parent
process.exit(0);
});
child.unref()
rabbit.js - 孩子 如果它启动并运行,'i' 应该保持递增
var i=0;
i++;
if (process.send) {
process.send("Hello"+i);
}
process.on('message', message => {
console.log('message from parent:', message);
});
【问题讨论】:
标签: javascript node.js rabbitmq forever