使用pm2

时间:2015-11-11 18:05:15

标签: node.js express pm2

我正在尝试将一些参数传递给由pm2运行的Express应用程序。他们的文档中没有任何暗示这样做,但显然可以将一些EV传递给您的节点应用程序,如SOME_STUFF=xxx pm2 start app.js

5 个答案:

答案 0 :(得分:4)

这实际上是可能的,而且我很确定它是不久前在PM2的文档中。

无论如何,这就是你需要做的事情:

pm2 start app.js -- -some_stuff xxx

基本上,添加--然后您可以添加自己的应用参数。

管理找到源,它被隐藏得很好:http://pm2.keymetrics.io/docs/usage/quick-start/#42-ways-of-starting-processes

答案 1 :(得分:3)

注意-更新环境中的环境变量后,必须执行以下操作:

pm2重新启动所有--update-env

问我怎么知道...

编辑:还要在节点源目录中查找.env文件...

答案 2 :(得分:1)

我在使用pm2 start app.js -- -some_stuff xxx传递参数时遇到问题,因此我选择这样做:SOME_STUFF=xxx OTHER_STUFF=abc pm2 start app.js

然后,当我运行pm2 logs时,我可以看到我的应用程序已成功启动,并且环境变量已正确设置,就像我之前在运行pm2 logs时看到这些变量周围的错误一样。 / p>

答案 3 :(得分:0)

你应该在生态系统.config.js中传递ENV

ecosystem.config.js(在根目录中)

module.exports = {
  apps: [
    {
      name: "project-name",
      exec_mode: "cluster",
      instances: "1",
      script: "./server/index.js", // your script
      args: "start",
      env: {
        NODE_ENV: "production", 
        SOME_ENV: "some_value"...
      },
    },
  ],
};

在控制台中:

pm2 run ecosystem.config.js

PM2官方文档中有信息about configuration of ENV

答案 4 :(得分:0)

环境变量不会总是更新,除非您强制它们更新。

SOME_STUFF=xxx pm2 start app.js --update-env