【问题标题】:Gracefully restart in node.js在 node.js 中优雅地重启
【发布时间】:2013-12-13 10:45:44
【问题描述】:

我在 node.js 中有一个互联网半依赖代码

它取决于互联网的更新和启动。

使用 process.on('uncaughtException') 我能够解决所有互联网连接问题。

我想要一种方法来停止脚本,等待给定的时间,然后从头重新启动应用程序。

我试过了:

process.on('uncaughtException', function(err) {
    console.log('Caught fatal error ' + err + ', will restart in 10sec');
    setTimeout(function() {
        var arg = ['-c', 'sh start.sh'],
            child = spawn('bash', arg);
        process.exit();
    }, 10000);
});

它确实重新启动了脚本,但在另一个实例中,这意味着当我 ctrl + c 终止进程时,我的日志显示 node.js 的 X 实例正在运行。 (以多个“用户终止进程。终止路径/to/app.js”结束日志) 我想在生成 start.sh 之前杀死脚本

(nb:start.sh 是一个简单的 bash 脚本,它使用一些参数启动我的应用程序)。

【问题讨论】:

    标签: javascript node.js exception


    【解决方案1】:

    有一个外部工具来监控它并在它退出后重新启动它,您可以使用forevernode-supervisor 或简单的循环cron

    【讨论】:

    • 我正在使用supervisor,它非常可靠。
    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 2012-02-14
    • 2018-11-01
    相关资源
    最近更新 更多