【问题标题】:PM2 list return an empty listPM2 列表返回一个空列表
【发布时间】:2020-12-24 17:20:51
【问题描述】:

我们正在使用 AWS CodeDeploy 和 PM2 version: '^0.12.14' 来管理我们的 Web 应用程序,但是在点击 pm2 list 后我们得到了一个空列表,尽管该节点应用程序已成功启动并且 PM2 当前正在服务器上运行,此外PM2 日志适用于应用程序日志和 PM2 日志 ~/.pm2/pm2.log,如下所示: Starting execution sequence in -cluster mode- for app name:app id:0 App name:app id:0 online 但是当我们尝试显示应用程序app 的详细信息时,它显示没有具有此名称甚至id 的应用程序pm2 show app,它给了我们[PM2][WARN] app doesn't exist

我们不知道到底是什么问题,您能帮帮我们吗?

这是GitHub Issue

【问题讨论】:

    标签: amazon-ec2 npm pm2


    【解决方案1】:

    我在pm2 0.12.x 上遇到了同样的问题,我认为更新应该可以解决这个问题,但不幸的是,我在使用1.1.3 版本时遇到了同样的问题

    然后我开始尝试使用docker 重现此问题。 我使用 ssh 配置创建了一个 docker 容器,并将其作为部署应用程序的 ssh 服务器运行。我无法重现该问题。

    比较两台服务器的环境变量(我的实时服务器和在 docker 中运行的服务器),我发现唯一的区别是 PM2_HOME 变量,当我在我的实时服务器上取消设置 PM2_HOME 变量时,我可以再次列出我正在使用pm2 list 运行的应用程序 我认为 PM2 主文件夹默认是 ~/.pm2 我的 PM2_HOME 是用户的主文件夹。 所以我的解决方案是取消设置 env 变量或将其设置到正确的文件夹,在我的情况下是 /home/username/.pm2

    这是一个示例Dockerfile,其中包含节点、npm 和 pm2,您可以在其中部署您的应用并与您的服务器配置进行比较:

    FROM node:latest
    
    apt-get update && apt-get install -y openssh-server
    RUN mkdir /var/run/sshd
    RUN echo 'root:root' | chpasswd
    RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config
    # SSH login fix. Otherwise user is kicked off after login 
    RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
    
    ENV NOTVISIBLE "in users profile"
    RUN echo "export VISIBLE=now" >> /etc/profile
    
    RUN npm install -g pm2@1.1.3
    
    EXPOSE 22
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多