我正在尝试使用
分叉节点子进程child_process.fork("child.js")
在父母退出后让它说活着。我尝试过像这样使用分离选项:
child_process.fork("child.js", [], {detached:true});
使用spawn时有效,但使用fork时分离是真的,它只是静默失败,甚至没有执行child.js。
我也试过
var p = child_process.fork("child.js")
p.disconnect();
p.unref();
但是,当父母做的时候,孩子仍然会死。 任何帮助或见解将不胜感激。
编辑:
节点版本:v5.3.0 平台:Windows 8.1 代码:
//Parent
var child_process = require("child_process");
var p;
try{
console.log(1)
p = child_process.fork("./child.js")
console.log(2)
} catch(e){
console.log(e)
}
p.on('error', console.log.bind(console))
p.disconnect();
p.unref();
//To keep process alive
setTimeout(() => {
console.log(1);
}, 100000);
-
//Child
var fs = require("fs");
console.log(3);
fs.writeFileSync("test.txt", new Date().toString());
setTimeout(()=>{
console.log(1);
}, 100000);