Подтвердить что ты не робот

Как передать node v8 args и script args на pm2?

Мне нужно запустить приложение ниже с pm2, но не знаю, как запустить его с pm2.

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

Я знаю о --node-args, но я думаю, что это только для -expose-gc.

4b9b3361

Ответ 1

После некоторого рытья я узнал, что то, что я искал, было двойным тире на 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.

Ответ 2

Другим способом является создание файла объявления 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

Ответ 3

вы можете добавить любые настраиваемые аргументы после -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

Ответ 4

Мне пришлось выставлять-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"}
    }
  ]
}