带有 systemd 并传递节点参数的 pm2
pm2 with systemd and passing node argument
我想用 pm2 和环境变量启动节点,例如 --nouse-idle-notification
或 --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启动进程占用内存少)
通过使用 "node_args": "--max-old-space-size=2048 --nouse-idle-notification" 你做了正确的事情并且这些参数被考虑在内。
PM2 重命名进程并在进程标题中删除指定的节点参数。
下面是使用节点参数启动 pm2 的确切命令
pm2 start app.js --node-args="--max-old-space-size=4096"
我想用 pm2 和环境变量启动节点,例如 --nouse-idle-notification
或 --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启动进程占用内存少)
通过使用 "node_args": "--max-old-space-size=2048 --nouse-idle-notification" 你做了正确的事情并且这些参数被考虑在内。
PM2 重命名进程并在进程标题中删除指定的节点参数。
下面是使用节点参数启动 pm2 的确切命令
pm2 start app.js --node-args="--max-old-space-size=4096"