如何在没有外部依赖项的情况下以编程方式重新启动Node.js应用程序?

如何在没有外部依赖项的情况下以编程方式重新启动Node.js应用程序?,node.js,Node.js,我想让应用程序在超时后重新运行“节点索引”命令 到目前为止,我尝试的是: setTimeout(function () { process.on("exit", function () { require("child_process").spawn(process.argv.shift(), process.argv, { cwd: process.cwd(), detached :

我想让应用程序在超时后重新运行“节点索引”命令

到目前为止,我尝试的是:

setTimeout(function () {
    process.on("exit", function () {
        require("child_process").spawn(process.argv.shift(), process.argv, {
            cwd: process.cwd(),
            detached : true,
            stdio: "inherit"
        });
    });
    process.exit();
}, 1000);

看起来你正试图重新发明pm2或操作系统相关的服务管理。使用某些操作系统上可用的最方便的工具在外部管理此类服务总是更好。我使用
永久
作为应用程序监视器,当我想重新启动时(每天早上4点),我只需调用
process.exit()
并永久重新启动我。如果我不想永远这样做,我可能会执行一个小的nodejs脚本,在一定时间内启动我,然后在分离的子进程运行后,对原始进程调用
process.exit()
setTimeout(() => {
    process.on('exit', () => {
        exec('node index') // and with absolute path --> exec('node C:\\Users\...')
    })
    process.exit()
}, 1000);