pm2 with systemd和传递节点参数

时间:2016-12-08 02:03:51

标签: node.js ubuntu-16.04 systemd pm2 ubuntu-server

把头撞在墙上。问题是我想用pm2和环境变量开始节点,比如" --nouse空闲通知"或" - max-old-space-size = 2048"。

然而,无论我做什么,都没有传递节点变量。我用mp2和配置文件启动我的应用程序。配置文件如下所示:

{
  "apps" : [{
    "env": {
      "NODE_PATH": "/usr/bin/node",
      "interpreter_args": "--max-old-space-size=2048 --nouse-idle-notification"
    },
    "env_development": {
      "NODE_ENV": "development"
    },
    "env_production" : {
       "NODE_ENV": "production",
       "APP_TYPE": "web"
    },
    "exec_mode"   : "fork",
    "name"        : "MyApp",
    "script"      : "/opt/myapp/app.js",
    "watch"       : false,
    "out_file"    : "/var/log/app.log",
    "error_file"  : "/var/log/app.log",
    "combine_logs": true,
    "node_args": "--max-old-space-size=2048 --nouse-idle-notification",
    "args": "--max-old-space-size=2048 --nouse-idle-notification"
  }]
}

(正如您所见,我尝试以多种方式传递节点变量)

然后我用以下内容启动应用程序:

pm2 restart pathtojsonfile --env production

一切都正常启动,我看到变量如" MY_APP"在我的代码中。但是,现在当我用" top"我只看到:

node /opt/myapp/app.js

当我永久或手动启动应用程序时,我可以看到如下过程:

node --max-old-space-size=2048 --nouse-idle-notification /opt/myapp/app.js

pm2是不是显示那些节点参数还是它们确实没有传入? (pm2启动进程使用更少的内存)

任何帮助表示赞赏。谢谢。

2 个答案:

答案 0 :(得分:3)

以下是使用node-args启动pm2的精确命令

pm2 start app.js --node-args="--max-old-space-size=4096"

答案 1 :(得分:2)

使用" node_args":" - max-old-space-size = 2048 --nouse-idle-notification"你做对了,这些论点都被考虑在内了。

PM2重命名进程并在进程标题中删除指定的节点参数。