使用环境变量定义PM2脚本路径

时间:2017-04-12 14:42:23

标签: javascript node.js continuous-integration environment-variables pm2

我正在构建一个简单的暂存CI环境,我通过环境变量APP_PATH定义可运行的Node应用程序的路径。

是否可以通过跟踪APP_PATH变量中的路径告诉进程配置文件中的PM2查找启动脚本?

像这样:

{
  "apps": [
    {
      "name": "my_app",
      "script": "$APP_PATH/app.js"
    }
  ]
}

目前,我在启动上述配置时从PM2收到[PM2][ERROR] script not found :消息。

简而言之: PM2无法解析script属性中定义的env var。有没有办法克服这个问题?

1 个答案:

答案 0 :(得分:1)

如果你需要采用相同的方法。按照这个。

在根目录之外或任何需要的位置创建.json文件。

  

servers.json

[{
  "name":"MyApp",
  "script":"/home/user/app/server.js",
  "instances":"3" //number of instances to start
},
{
  "name":"MySecondApp",
  "script":"/home/user/app2/server.js",
  "instances":"max" //to calculate your number of CPU cores available and run based on the core count
}]

然后使用pm2 start servers.json

运行

这将启动两个应用程序,其中包含提及的名称和实例。

或者

使用最新版本的PM2,您无需编写任何脚本。只需执行一些命令即可。

步骤1:首先根据需要创建pm2实例,就像现在需要运行的许多实例或需要运行多少个不同的服务器一样。

我的下面 enter image description here

应用程序启动并按此列出后。

第2步:输入pm2 startup。然后您将看到pm2自动生成的命令,它可以帮助您将其创建为服务。

enter image description here

步骤3:您将看到需要以灰色阴影运行的命令。复制并以root用户身份运行它。

运行该命令后,您将看到如下结果。

enter image description here

步骤4:运行pm2 save,以便为启动脚本保存当前的pm2进程列表。

那是......

重新启动服务器并使用pm2 lspm2 status

进行检查

如果您想再次更新pm2进程列表,请使用pm2 update这将获取当前进程列表并更新启动脚本。

希望这有帮助!!!