Мне нужно запустить приложение ниже с pm2, но не знаю, как запустить его с pm2.
node --expose-gc bin/www arg1 arg2 arg3
Я знаю о --node-args
, но я думаю, что это только для -expose-gc.
Мне нужно запустить приложение ниже с 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
Все аргументы v8, которые вы должны вставить внутри --node-args
, и все скрипты args, которые нужно схватить из process.argv
, нужно поместить после двойной тире.
Я надеюсь, что в будущем они реализуют что-то ссылку - script -args = "arg1 arg2 arg3". Было бы очень приятно для тех, кто не является экспертом по Linux.
Другим способом является создание файла объявления json приложения, в котором вы указываете ключ args
. Посмотрите документацию на сайт PM2.
Пример файла 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 как --node-args="--harmony"
pm2 start app.js --node-args="--harmony"
И
pm2 start app.js --node-args="--harmony" -x -- --prod
Мне пришлось выставлять-gc в моем pm2 process.js, поэтому я сделал следующее:
{
"apps" : [
{
"name" : "app",
"script" : "bin/www",
"instances" : 2,
"exec_mode" : "cluster",
"watch" : false,
"node_args" : "--expose-gc",
"env" : {"NODE_ENV": "development"}
}
]
}