web-dev-qa-db-fra.com

Comment passer les arguments de nœud v8 et les arguments de script à pm2?

Je dois pouvoir démarrer l'application ci-dessous avec pm2 mais je ne sais pas comment démarrer avec pm2.

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

Je connais --node-args mais je pense que ce n'est que pour --expose-gc.

17
Harold Finch

Après quelques recherches, j'ai découvert que ce que je cherchais, c'était le double tiret sur Linux.

Le code normal,

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

Le même code utilisant pm2

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

Tous les arguments v8 que vous devez mettre dans --node-args et tous les arguments de scripts à récupérer à partir de process.argv doivent être placés après le double tiret.

J'espère qu'à l'avenir, ils implémenteront quelque chose link --script-args = "arg1 arg2 arg3". Serait très gentil pour ceux qui ne sont pas des experts de Linux.

22
Harold Finch

Vous pouvez également créer un fichier json de déclaration d'application dans lequel vous spécifiez la clé args. Regardez documentation sur le site PM2.

Exemple de fichier 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"
    }
  }]
}

Et lancez-le comme suit:

$ pm2 start pm2.json
18
psulek

vous pouvez ajouter n'importe quel argument personnalisé après -x --

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

et argument de noeud en tant que --node-args="--harmony"

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

Tous les deux

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

2
Nishchit Dhanani

Je devais exposer-gc dans mon processus pm2 process.js donc j'ai eu le faire ce qui suit:

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