¿Hay alguna manera para que pm2 ejecute un script de inicio npm o solo tiene que ejecutar pm2 start app.js
Entonces en desarrollo
npm start
Luego, en producción con pm2, ejecutarías algo como
pm2 start 'npm start'
Hay una forma equivalente de hacer esto en forever
:
forever start -c "npm start" ./
Respuestas:
PM2 ahora es compatible con npm start:
Para asignar un nombre al proceso PM2, use la
--name
opción:fuente
--name "app"
pero solo lo configuró en npm.npm start
en el archivo de proceso?Aquellos que usan un script de configuración como un
.json
archivo para ejecutar el proceso pm2 pueden usarnpm start
o cualquier otro script como este:my-app-pm2.json
Entonces simplemente -
Editar : para manejar el caso de uso cuando tiene este script de configuración en un directorio principal y desea iniciar una aplicación en el subdirectorio, use el
cwd
atributo.Suponiendo que nuestra aplicación esté en el subdirectorio
nested-app
relativo a este archivo de configuración, entonces:Más detalles aquí .
fuente
start
información del script está en uno de ellos. Vea esta esencia: gist.github.com/gianpaj/04c5680a8275616aac5e46374e07f673 Cuando ejecuto esto, no sabe de dóndenpm
debe ejecutarse. Thxcwd
atributo. Comprueba mi respuesta editada :)sudo pm2 start config.json
Si. Uso
pm2 start npm --no-automation --name {app name} -- run {script name}
. Funciona. La--no-automation
bandera está ahí porque sin ella PM2 no reiniciará su aplicación cuando se bloquee.fuente
pm2 --help | grep 'no-autom'
devuelve una línea en la versión 1.0.2Usar
npm run
pm2 start npm --name "{app_name}" -- run {script_name}
fuente
Escribí el script de shell a continuación (llamado
start.sh
). Porque mipackage.json
tieneprestart
opción. Entonces quiero corrernpm start
.Luego, comience
start.sh
a las 2 p.m.fuente
startOrRestart
comando.Sí, ahora pm2 admite npm start, --name para el nombre de la aplicación de especie
fuente
Consulte para habilitar la agrupación:
¿Qué piensas?
fuente
-i 0
hacer?Si usa PM2 a través de módulos de nodo en lugar de globalmente, deberá configurarlo
interpreter: 'none'
para que las soluciones anteriores funcionen. Documentos relacionados aquí .En
ecosystem.config.js
:fuente
Necesitaba ejecutar un script npm específico en mi aplicación en pm2 (para cada env) En mi caso, fue cuando creé un servicio de ensayo / ensayo
El comando que funcionó para mí (los argumentos deben reenviarse de esa manera):
ejemplos:
Espero que haya ayudado
fuente
pm2 start npm --name "custom_pm2_name" -- run prod
Esto funcionó para mí cuando los demás no
fuente
debe proporcionar el nombre de la aplicación aquí, como myapp
pm2 start npm --name "appName" -- start
puedes verificarlo por
pm2 list
también puedes agregar tiempo
pm2 restart "id" --log-date-format 'DD-MM HH:mm:ss.SSS'
opm2 restart "id" --time
puedes revisar los registros por
pm2 log "id"
opm2 log "appName"
para obtener registros para todas las aplicaciones
pm2 logs
fuente
No olvides el espacio antes de comenzar
entonces el comando correcto es:
fuente
Desafortunadamente, parece que pm2 no admite la funcionalidad exacta que solicitó https://github.com/Unitech/PM2/issues/1317 .
La alternativa propuesta es utilizar un
ecosystem.json
archivo Introducción a la implementación que podría incluir configuraciones para entornos de producción y desarrollo. Sin embargo, esto todavía se está utilizandonpm start
para arrancar su aplicación.fuente
However, this is still using npm start to bootstrap your app.
¿Realmente puedes corrernpm start
usandopm2
?puede correr
si desea implementar varios servidores, puede hacerlo. en lugar de pm2 start npm - start
fuente
Para ejecutar PM2 con
npm start
método y para darle unname
, ejecuta esto,pm2 start npm --name "your_app_name" -- start
Para ejecutarlo pasando formato de fecha para registros,
pm2 start npm --name "your_name" --log-date-format 'DD-MM HH:mm:ss.SSS' -- start
fuente
Ahora, puede usar después de:
Siga por https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
fuente
Funciona bien en CentOS 7
PM2 versión 4.2.1
tomemos dos escenarios:
1. inicio de la NGP //server.js
2. npm run main //main.js
fuente