重新启动子进程

时间:2019-06-10 18:23:54

标签: node.js

我有一个产生子进程的主进程。终止子进程后,它将重新启动,但是再次终止后,它将不会重新启动。

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)。

2 个答案:

答案 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函数中,以检查其是否正在运行,是否不可以再次调用