首页 文章

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

提问于
浏览
0

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

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

像这样:

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

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

In a nutshell: PM2无法解析 script 属性中定义的env var . 有没有办法克服这个问题?

1 回答

  • 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 这将获取当前进程列表并更新启动脚本 .

    希望这可以帮助!!!

相关问题