Я пытаюсь раскошелиться дочерний процесс узла сдочерний процесс Узел не может работать отдельно
child_process.fork("child.js")
и он сказал в живых после родительских выходов. Я попытался с помощью отстраненного варианта, как так:
child_process.fork("child.js", [], {detached:true});
Который работает при использовании мицелия, но когда отдельностоящий верно, используя вилку он просто не может тихо, даже не выполняя child.js.
Я также попытался
var p = child_process.fork("child.js")
p.disconnect();
p.unref();
Но ребенок все еще умирает, когда родитель делает. Любая помощь или понимание были бы оценены.
EDIT:
Узел Версия: 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);
Спасибо за ответ. Тем не менее, я использую монитор процесса и fileWriteSync'ing. Это определенно не выполняется. Единственное отличие между наблюдением за выполнением/невыполнением дочернего элемента - это отключенная опция, используемая в fork. – BrightEyed
Чтобы прояснить, он отлично работает, когда не пытается отсоединить раздвоенный дочерний процесс. Но при попытке отсоединить его просто не работает. Итак, знаете ли вы, как создать отдельный дочерний процесс, используя fork, без использования отсоединения/использования отсоединения таким образом, который работает? – BrightEyed
Я считаю, что child_process.fork по умолчанию отфильтровывает дочерний процесс, поэтому почему на fork() – DogNibbler