node.js - see - pm2 stop daemon
¿Cómo pasar el nodo v8 args y script args a pm2? (4)
Necesito poder iniciar la aplicación a continuación con pm2 pero no sé cómo iniciarla con pm2.
node --expose-gc bin/www arg1 arg2 arg3
Sé sobre --node-args
pero creo que es solo para --expose-gc.
Después de algunas excavaciones, descubrí que lo que estaba buscando era el doble guión en Linux.
El código normal,
node --expose-gc bin/www arg1 arg2 arg3
El mismo código usando pm2
pm2 start bin/www --node-args="--expose-gc" -- arg1 arg2 arg3
Todos los argumentos v8 que tienes que colocar dentro de --node-args
y todos los argumentos de scrips para ser capturados desde process.argv
tienes que ponerlos después del doble guión.
Espero que en el futuro implementen algo enlace --script-args = "arg1 arg2 arg3". Sería muy bueno para aquellos que no son expertos en linux.
Otra forma es crear un archivo json de declaración de aplicación donde especifique la clave args
. Mira la documentation en el sitio de PM2.
Ejemplo de archivo 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"
}
}]
}
Y ejecútalo de la siguiente manera:
$ pm2 start pm2.json
Tuve que exponer-gc en mi pm2 process.js, así que hice lo siguiente:
{
"apps" : [
{
"name" : "app",
"script" : "bin/www",
"instances" : 2,
"exec_mode" : "cluster",
"watch" : false,
"node_args" : "--expose-gc",
"env" : {"NODE_ENV": "development"}
}
]
}
puede agregar cualquier argumento personalizado después de -x --
,
pm2 start app.js -x -- --prod
y argumento de nodo como --node-args="--harmony"
pm2 start app.js --node-args="--harmony"
Ambos
pm2 start app.js --node-args="--harmony" -x -- --prod