¿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
--nameopción:fuente
--name "app"pero solo lo configuró en npm.npm starten el archivo de proceso?Aquellos que usan un script de configuración como un
.jsonarchivo para ejecutar el proceso pm2 pueden usarnpm starto 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
cwdatributo.Suponiendo que nuestra aplicación esté en el subdirectorio
nested-apprelativo a este archivo de configuración, entonces:Más detalles aquí .
fuente
startinformación del script está en uno de ellos. Vea esta esencia: gist.github.com/gianpaj/04c5680a8275616aac5e46374e07f673 Cuando ejecuto esto, no sabe de dóndenpmdebe ejecutarse. Thxcwdatributo. Comprueba mi respuesta editada :)sudo pm2 start config.jsonSi. Uso
pm2 start npm --no-automation --name {app name} -- run {script name}. Funciona. La--no-automationbandera 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 runpm2 start npm --name "{app_name}" -- run {script_name}fuente
Escribí el script de shell a continuación (llamado
start.sh). Porque mipackage.jsontieneprestartopción. Entonces quiero corrernpm start.Luego, comience
start.sha las 2 p.m.fuente
startOrRestartcomando.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 0hacer?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 prodEsto 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" -- startpuedes verificarlo por
pm2 listtambién puedes agregar tiempo
pm2 restart "id" --log-date-format 'DD-MM HH:mm:ss.SSS'opm2 restart "id" --timepuedes revisar los registros por
pm2 log "id"opm2 log "appName"para obtener registros para todas las aplicaciones
pm2 logsfuente
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.jsonarchivo 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 startpara arrancar su aplicación.fuente
However, this is still using npm start to bootstrap your app.¿Realmente puedes corrernpm startusandopm2?puede correr
si desea implementar varios servidores, puede hacerlo. en lugar de pm2 start npm - start
fuente
Para ejecutar PM2 con
npm startmétodo y para darle unname, ejecuta esto,pm2 start npm --name "your_app_name" -- startPara ejecutarlo pasando formato de fecha para registros,
pm2 start npm --name "your_name" --log-date-format 'DD-MM HH:mm:ss.SSS' -- startfuente
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