【问题标题】:Pm2 process stops runningpm2进程停止运行
【发布时间】:2016-01-03 18:06:40
【问题描述】:

我有一个节点聊天应用程序需要在我的服务器上继续运行(带有 nginx 的 ubuntu)。问题是应用程序在几个小时或几天后停止。 当我检查服务器时,我发现我的 pm2 列表是空的。

我用来启动我的应用程序的代码:

pm2 start notification_server/index.js

它看起来好像 pm2 在一段时间后被重置了。我也尝试过永远使用,但后来我遇到了同样的问题。有没有办法防止pm2列表变空?

【问题讨论】:

  • 这在您的系统重新启动/重新启动时是可能的。您可以检查系统的上次启动时间并检查发生了什么。并使用 pm2 日志检查日志以了解有关错误的更多信息。

标签: node.js ubuntu nginx forever pm2


【解决方案1】:

您是否尝试为您的应用检查日志$ pm2 logs

它很可能会告诉您为什么您的应用程序被终止,或者它可能只是按预期退出。你可以在那里找到类似的东西:

PM2 | App [app] with id [0] and pid [11982], exited with code [1] via signal [SIGINT]

这可以告诉你发生了什么。没有更多细节,很难给你更好的答案。

【讨论】:

    【解决方案2】:

    这很可能表明您的服务器正在重新启动。当您的服务器重新启动时,PM2 会关闭并从其“状态”列表中删除所有节点实例。

    您可以执行以下步骤以使 PM2 重新启动您的 Node 程序在重新启动时重新启动:

    1. 运行pm2 startup 并按照说明操作(您必须执行sudo 命令;PM 会告诉您具体操作)。
    2. 通过 pm2 start,让您的 Node 进程以您喜欢的方式启动和运行。
    3. 运行 pm2 save 将事物的当前状态注册为您希望在系统启动时看到的状态。

    来源:http://pm2.keymetrics.io/docs/usage/startup/

    【讨论】: