我正在尝试配置 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 文件之前,我会使用它。