如何防止pm2在启动过程中出现错误时重新启动应用程序

上下文

我已经将configurationvalidation添加到组成我的Node.js应用程序的一些模块中。 当他们开始时,每个人检查它是否正确configuration,并有权访问它需要的资源(例如可以写入一个目录)。 如果它检测到有什么错误,它会向自己发送一个SIGINT(process.pid),这样应用程序就会正常closures(closureshttp服务器,closures与Redis的连接等等)。 我希望操作员在启动应用程序之前,意识到存在configuration和/或环境问题并对其进行修复。

我使用pm2开始/停止/重新加载应用程序,我喜欢事实pm2会自动重新启动它的情况下,以后崩溃,但我不希望它重新启动我的应用程序在上面的情况下,因为根本原因不会只需重新启动应用程序即可消除,所以pm2将继续重新启动max_restarts (默认为max_restarts中的10)。

如何防止pm2在启动过程中中止重新启动应用程序?

我知道--wait-ready--wait-ready选项,但是由于我们正在讨论多个模块和asynchronous启动逻辑,所以我很难确定何时/何时process.send('ready')

可能的scheme

我正在考虑让我的所有模块发出一个内部的“准备好”事件,并把所有连接“准备好”事件的事情连接起来,最终能够将“准备好”发送给pm2,但是我想先问一下,有点过于工程。

谢谢,

罗杰