了解node.js pm2启动选项

pm2有以下命令行选项:

startOrRestart <json> startOrReload <json> startOrGracefulReload <json> 

但他们之间有什么分别?

据我所知所有启动应用程序(S),如果他们还没有开始。 所以让我们考虑应用程序(一个HTTP服务器)正在运行。

我假设重新启动强制应用程序停止并重新启动它, 重新加载将停止接受新的连接,等待所有连接处理,然后重新启动应用程序。 不同的是,没有停机或中止连接重新加载,但除此之外,它的行为就像重新启动 (即代码更改应用)。

我的假设是否正确? startOrGracefulReload如何不同?

如果这三个命令还没有运行,那么这三个命令将会启动你的应用程序,所以,让我们把注意力集中在已经运行的情况下。

startOrRestart :它将停止JSON文件中的所有应用程序,然后所有的应用程序将再次启动。 你会有停机。

startOrReload :你可以在这里阅读:

与重新启动相反,重新启动进程,重新加载实现0秒的停机时间重新加载。

所以,主要的区别在于你没有停机时间。

startOrGracefulReload :同样,你可以在这里阅读更多:

有时,您可能会遇到很长时间的重新加载,或重新加载不起作用(回退到重新启动),意味着您的应用程序在退出时仍具有打开的连接。 或者您可能需要closures所有数据库连接,清除数据队列或其他。

要解决此问题,您必须使用优雅重新加载。

所以,基本上pm2要求你的应用程序在重新加载之前退出,以防万一你有依赖如数据库连接或挂起的请求。 您必须指定应用程序所需的时间,以closures所有现有的连接。 然后,一个新的过程将开始,当这个新的过程说:“ 嘿!我还活着! ”,那么你的旧过程将结束。