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

PM2 resurrect not working on reboot - dump.pm2 being emptied

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

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

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

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

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

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

又空了,dump.pm2也空了!

我不确定是什么进程在清除这个文件。我已尝试重新安装并重新 运行 启动脚本,但无济于事。非常感谢任何帮助。

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

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

这成功了。虽然不理想,但在确定 dump.pm2 文件被清空的原因之前,我将使用它。