我刚刚安装了CentOS 8并添加了nodejs(尝试了v12和v14)然后我使用npm install pm2@latest安装了pm2(所以在发布时它使用v4.4.0)。我确实尝试过旧版本(v3.5.0),但它的作用完全相同。
安装pm2后,我运行命令“pm2startup”
重新启动后,pm2 确实启动,但在 90 秒后被杀死,然后重新启动并给出此消息
“pm2 已被信号杀死,退出前转储进程列表...”
首先,我认为这是因为我的应用程序(pm2 应该管理的应用程序),但我从 pm2 中删除了它,所以它实际上是空的,但它做了同样的事情
Ale*_*Laz 10
稍后更新。对于那些面临同样问题的人。这是一个与 SE Linux 相关的问题。已知的解决方法(我发现的)。
禁用 SE Linux(显然,不推荐)
转到 /etc/systemd/system/pm2-root.service - 注释 PIDFile=...(在该行前面添加 #)
审核和跟踪 - 使用以下命令:
# dnf install policycoreutils-python-utils setroubleshoot-server -y
# journalctl -f
Run Code Online (Sandbox Code Playgroud)
此时,您应该在输出(日志)中看到解决方案,它应该类似于:
# ausearch -c 'systemd' --raw | audit2allow -M my-systemd
# semodule -i my-systemd.pp
Run Code Online (Sandbox Code Playgroud)
您需要执行最后一步(ausearch...和semodule...)两次 - 我做了一次,重新启动机器并在 90 秒后注意到同样的问题。但如果你仔细阅读日志,你会发现这个问题似乎输出了两次。(看起来一样)。可能有两件事正在尝试写入该文件(pm2-root.service)。
仍在等待完美的解决方案(由真正知道如何以正确的方式解决此问题的人完成),但对于那些遇到此问题的人来说,这些选项中的任何一个似乎都可以正常工作。
小智 9
我遇到了同样的问题,我在网上尝试了几种解决方案,但没有一个对我有用。
但是,我完全删除了pm2,重新启动服务器,然后重新安装pm2,这对我来说就完成了。
1- 停止并移除pm2
pm2 kill
sudo npm remove pm2 -g
Run Code Online (Sandbox Code Playgroud)
2-重新启动服务器
sudo reboot
Run Code Online (Sandbox Code Playgroud)
3-再次登录,然后重新安装pm2
sudo npm install -g pm2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8319 次 |
| 最近记录: |