如何将节点v8参数和脚本parameter passing给pm2?

我需要能够启动pm2下面的应用程序,但不知道如何开始与pm2。

node --expose-gc bin/www arg1 arg2 arg3 

我知道--node-args但我认为只适用于–expose-gc。

       

网上收集的解决方案 "如何将节点v8参数和脚本parameter passing给pm2?"

经过一番挖掘,我发现我正在寻找的是Linux上的双击。

正常的代码,

 node --expose-gc bin/www arg1 arg2 arg3 

使用pm2相同的代码

 pm2 start bin/www --node-args="--expose-gc" -- arg1 arg2 arg3 

所有的v8参数你必须把--node-args和所有--node-argsprocess.argv抓取,你必须在双重短划线之后。

我希望将来他们可以实现一些链接–script-args =“arg1 arg2 arg3”。 对于那些不是linux专家的人来说,这将是非常好的。

另一种方法是创build你指定args键的应用程序声明json文件。 看看PM2网站上的文档 。

pm2.json文件的pm2.json

 { "apps" : [{ "name" : "appname", "script" : "app.js", "args" : ["-s", "123"], "node_args" : "--harmony", "merge_logs" : true, "cwd" : "/this/is/a/path/to/start/script", "env": { "NODE_ENV": "production" } }] } 

并运行如下:

 $ pm2 start pm2.json 

你可以在-x --之后添加任何自定义参数,

pm2 start app.js -x -- --prod

和节点参数为--node-args="--harmony"

pm2 start app.js --node-args="--harmony"

pm2 start app.js --node-args="--harmony" -x -- --prod

我不得不在我的pm2 process.js中公开gc,所以我做了以下操作:

 { "apps" : [ { "name" : "app", "script" : "bin/www", "instances" : 2, "exec_mode" : "cluster", "watch" : false, "node_args" : "--expose-gc", "env" : {"NODE_ENV": "development"} } ] }