以下のアプリをpm2で起動できるようにする必要がありますが、pm2で起動する方法がわかりません。
node --expose-gc bin/www arg1 arg2 arg3
--node-args
については知っていますが、-expose-gc専用だと思います。
少し掘り下げた後、私が探していたのはLinuxのダブルダッシュであることがわかりました。
通常のコード、
node --expose-gc bin/www arg1 arg2 arg3
Pm2を使用した同じコード
pm2 start bin/www --node-args="--expose-gc" -- arg1 arg2 arg3
--node-args
内に配置する必要があるすべてのv8引数と、process.argv
から取得するすべてのscrips引数は、二重ダッシュの後に配置する必要があります。
将来的には、リンク--script-args = "arg1 arg2 arg3"を実装することを期待しています。 Linuxの専門家ではない人にとっては、とてもいいでしょう。
別の方法は、args
キーを指定するアプリケーション宣言jsonファイルを作成することです。 PM2サイトの documentation を見てください。
の例 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"}
}
]
}