我有一个产生子进程的主进程。终止子进程后,它将重新启动,但是再次终止后,它将不会重新启动。
test.js
const fork = require('child_process').fork;
const path = require('path');
const test = path.resolve('test2.js');
let test_child = fork(test);
test_child.on("close", () => {
console.log("child gone");
setTimeout(() => {
test_child = fork(test);
}, 2500)
});
test2.js
setInterval(() => {
console.log("test")
}, 250);
我希望主进程(test.js)在由于某种原因而崩溃或停止的情况下继续启动(test2.js)。
答案 0 :(得分:1)
const fork = require('child_process').fork;
const path = require('path');
const test = path.resolve('child.js');
function repeat() {
let test_child = fork(test);
test_child.on("close", () => {
console.log("child gone");
setTimeout(() => {
repeat();
}, 25)
});
}
repeat();
您可以在main.js中尝试上面的代码
答案 1 :(得分:0)
如果您可以检查子进程的状态,则可以将其添加到setInterval函数中,以检查其是否正在运行,是否不可以再次调用