发生快速错误时,pm2 不会重启 worker

pm2 does not restart worker when express error occur

我正在使用 pm2 管理我的 nodejs express 应用程序中的进程(运行 在集群模式下)。

我们有两种错误处理程序

实际上,我没有声明这样的处理程序,因为在这种情况下让 pm2 检测死亡的 worker,所以自动重启死亡的 worker。

我也没有出于与 uncaughtException 相同的目的声明此错误处理程序。 但是在这种情况下 pm2 不会重启节点。

知道这个问题吗? 非常感谢

当使用快速错误处理程序甚至 "uncaughtException" 事件捕获错误时,进程仍然是 运行,因此 pm2 不会重新启动它。 如果你希望 pm2 在每次异常后重新启动,我建议这样:

    process.on('uncaughtException', function(e) {
      console.log('An error has occured. error is: %s and stack trace is: %s', e, e.stack);
      console.log("Process will restart now.");
      process.exit(1);
    })

快速错误处理程序也是如此。当我们执行 process.exit 方法时,进程将终止,pm2 将重新启动它。