我正在尝试将PM2配置为在centos上守护简单的node.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
它又是空的,dump.pm2也是如此!
我不确定清除此文件的进程是什么。我已经尝试重新安装并重新运行启动脚本无济于事。非常感谢任何帮助。
答案 0 :(得分:4)
作为临时解决方法,我将转储文件设置为immutable:
$ chattr +i /path/to/my/dump.pm2
这很有用。虽然不理想,但在我确定dump.pm2文件被清空的原因之前,我将使用它。