PM2 在 centos 8 上每 90 秒就会被杀死一次

标签 pm2 centos8

我刚刚安装了 CentOS 8 并添加了 nodejs(尝试了 v12 和 v14)然后我使用 npm install pm2@latest 安装了 pm2(所以在发布时它使用 v4.4.0)。我确实尝试过旧版本 (v3.5.0),但它的作用完全相同。
安装 pm2 后,我运行命令“pm2 startup”
重新启动后,pm2 确实启动,但在 90 秒后被杀死,然后重新启动并给出此消息
“pm2 已被信号杀死,退出前转储进程列表......”
首先,我认为这是因为我的应用程序(pm2 应该管理的应用程序),但我从 pm2 中删除了它,所以它实际上是空的,但它做同样的事情

最佳答案

稍后更新。对于那些面临同样问题的人。这是一个与 SE Linux 相关的问题。已知的解决方法(我发现的那些)。

  • 禁用 SE Linux(显然不推荐)
  • 转到/etc/systemd/system/pm2-root.service - 注释 PIDFile=... (在该行前面添加一个 #)
  • 审计和跟踪 - 使用以下命令:
     # dnf install policycoreutils-python-utils setroubleshoot-server -y
     # journalctl -f
    
    此时,您应该在输出(日志)中看到解决方案
    它应该是这样的:
    # ausearch -c 'systemd' --raw | audit2allow -M my-systemd
    # semodule -i my-systemd.pp
    
    您需要执行最后一步(ausearch ... 和 semodule ...)两次 - 我做了一次,重新启动机器并在 90 秒后注意到相同的问题。但是如果你仔细阅读日志,你会发现问题似乎输出了两次。 (看起来一样)。可能有两件事正在尝试写入该文件(pm2-root.service)。

  • 仍在等待完美的解决方案(由真正知道如何以正确方式解决此问题的人完成),但对于那些有此问题的人,这些选项中的任何一个似乎都可以正常工作。

    关于PM2 在 centos 8 上每 90 秒就会被杀死一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62814539/

    相关文章:

    javascript - pm2运行node.js,但是经常重启:exited with code [0] via signal [SIGINT]

    node.js - 重新加载 PM2 配置文件

    ansible - CentOS Stream 8 Ansible 2.9.23 如何安装winrm和credssp模块

    rhel - 如何在 Centos-8 下的命令行中列出和编辑 GRUB 2's "menuentry”?

    mongodb - 在 Apache 服务器/Centos 8 上运行的 Flask 应用程序无法连接到 Mongodb Atlas

    node.js - 如何在某个 Node 版本上运行 pm2?

    javascript - node.js v10.0.0 乱用 gulp

    node.js - PM2 使用选项运行 nodejs sveltekit 应用程序

    centos - Nagios 错误 : The server is temporarily unable to service your request due to maintenance downtime or capacity problems

    docker compose容器无法访问互联网