pm2 --update-env 选项似乎不起作用

hsh*_*han 10 node.js pm2

我像这样使用生态系统.config.js 启动了我的节点应用程序。

pm2 start ecosystem.config.js

我的生态系统.config.js 就在这里。

module.exports = {
  /**
  * Application configuration section
  * http://pm2.keymetrics.io/docs/usage/application-declaration/
  */
  apps : [
    // First application
    {
      name      : "API",
      script    : "./app/index.js",
      env: {
        COMMON_VARIABLE: "true"
      },
      env_production : {
        NODE_ENV: "production"
      }
    },
  ],

  /**
  * Deployment section
  * http://pm2.keymetrics.io/docs/usage/deployment/
  */
  deploy : {
    production : {
      user : "node",
      host : "212.83.163.1",
      ref  : "origin/master",
      repo : "git@github.com:repo.git",
      path : "/var/www/production",
      "post-deploy" : "npm install && pm2 startOrRestart ecosystem.json --env production"
    },
    dev : {
      user : "node",
      host : "212.83.163.1",
      ref  : "origin/master",
      repo : "git@github.com:repo.git",
      path : "/var/www/development",
      "post-deploy" : "npm install && pm2 startOrRestart ecosystem.json --env dev",
      env  : {
        NODE_ENV: "dev"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试更改用于观看模式的配置文件。我阅读了此文档,因此添加了watch: true属性,然后尝试pm2 restart ecosystem.config.js --update-env应用更改的配置。

该应用程序重新启动并且属性似乎已更改,因为当我尝试pm2 list启用观看时。但是更改代码后我的应用程序没有重新启动。

所以,我只是尝试过pm2 delete 0pm2 start ecosystem.config.js然后它运行良好。

为什么--update-env选项不起作用?我做错了什么?

Aar*_*ron 20

我发现更新 pm2 应用程序配置的唯一可靠方法是pm2 kill停止守护进程,或pm2 delete <id|name> && pm2 start ecosystem.config.js用于单个应用程序(如@hshan 所述)。

这个问题声称它是在 2014 年修复的,但那里的评论,加上我发现的其他问题/问题的字符串似乎另有说明:https : //github.com/Unitech/pm2/issues/528

更新:这里也正在进行讨论:https : //github.com/Unitech/pm2/issues/3192

  • 经过大约半小时的 stackoverflow,这对我来说是这样的......“pm2 Kill”什么也没做,“pm2 delete”然后“pm2 start Ecosystem.config.js”就是要走的路! (3认同)

小智 12

pm2 restart <pid> --update-env按照这个答案的建议为我工作