6

我正在尝试将 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 也是如此!

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

4

1 回答 1

4

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

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

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

于 2015-04-15T14:39:46.693 回答