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



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

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

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

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

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

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

它又是空的,转储.pm2也是空的!

我不确定是什么进程正在清除此文件。我尝试重新安装并重新运行启动脚本无济于事。任何帮助将不胜感激。

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

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

这奏效了。虽然不理想,但在我确定为什么清空 dump.pm2 文件之前,我会使用它。

最新更新