PM2列表返回一个空列表

时间:2015-08-09 20:52:24

标签: amazon-ec2 npm pm2

我们正在使用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详细信息时,它会显示没有具有此名称甚至是pm2 show app的应用,它会向我们提供[PM2][WARN] app doesn't exist

我们不知道究竟是什么问题,你能帮助我们吗?

这是GitHub Issue

1 个答案:

答案 0 :(得分:0)

我遇到与pm2 0.12.x相同的问题,我认为更新应该解决这个问题,但遗憾的是,我使用版本1.1.3

时出现同样的问题

然后我开始尝试使用docker重现这一点。 我使用ssh config创建了一个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