PM2 resurrect 在重启时不起作用 - dump.pm2 被清空

Posted

技术标签:

【中文标题】PM2 resurrect 在重启时不起作用 - dump.pm2 被清空【英文标题】:PM2 resurrect not working on reboot - dump.pm2 being emptied 【发布时间】:2015-06-21 14:13:18 【问题描述】:

我正在尝试将 PM2 配置为在 centos 上守护一个简单的 node.js 服务器。 init.d 脚本执行,没有错误,但是pm2 list 返回一个空列表,服务器没有启动。

最初,我试图以不同的用户身份启动该过程(对于那些感兴趣的人,这可以通过修改pm2-init.sh 来完成)。但由于复杂性,我决定首先尝试让它以 root 身份运行。

这个问题的奇怪症状是dump.pm2文件正在被某个进程清空,因此与pm2 resurrect无关。我将 pm2 设置为在重启时运行,如下所示

$ pm2 startup centos
$ pm2 start /path/to/my/server.js
$ pm2 save

此时,dump.pm2 中有一个大的 JSON 对象,并且服务器正在运行。然后,运行:

$ reboot
  ... wait and log back in
$ pm2 list

它又是空的,dump.pm2 也是如此!

我不确定清除此文件的进程。我尝试重新安装并重新运行启动脚本无济于事。非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

作为临时解决方法,我将转储文件设置为不可变:

$ chattr +i /path/to/my/dump.pm2

这行得通。虽然不理想,但在我确定为什么 dump.pm2 文件被清空之前,我将使用它。

【讨论】:

嘿@Jamie Counsell 如果您在这方面有任何进展,请告诉我!我也在使用你的临时解决方法 不幸的是,仍然没有进展。我在源代码中四处寻找原因,但我不确定这是否是 PM2、FS 或其他问题的问题。也很难准确跟踪文件何时被触摸(尽管我确信有办法)。你也在 Centos 上吗?在 Github 上打开一个问题可能是值得的。 我正在使用 Raspian(为 Raspberry Pi 优化的 debian)!我会再尝试一点,如果我找到解决方案,我会告诉你,否则打开一个问题可能是合适的! 这种方法在我的日志文件中填充了 EACCESS 错误,因此我决定同时使用 monit 和 pm2。 dev.iachieved.it/iachievedit/using-monit-with-node-js-and-pm2 这里也一样。我的~/.pm2/dump.pm2 时不时突然变空。已经发生了几次

以上是关于PM2 resurrect 在重启时不起作用 - dump.pm2 被清空的主要内容,如果未能解决你的问题,请参考以下文章

重启centos服务器后Nodejs API不起作用

PM2 启动生态系统.config.js 在节点 js 项目的 dockerfile 中不起作用

PM2 - Raspbian(Raspberry Pi)上的自动启动不起作用

为啥我的函数在调用时不起作用? [关闭]

为啥输入在由 React 生成时不起作用

过渡在悬停时不起作用