Qué es pm2?
Pm2 es un gestor de procesos en producción para las aplicaciones Node.js que tiene un balanceador de carga incorporado. PM2 permite mantener siempre activas las aplicaciones y volver a cargarlas evitando los tiempos de inactividad, a la vez que facilita tareas comunes de administrador del sistema. PM2 también permite gestionar el registro de aplicaciones, la supervisión y la agrupación en clúster.
Las principales características de pm2:
- Capacidad de manejar un montón de apps. (Ver el estado de distintas apps)
- Capacidad de monitoreo de memoria y cps de nuestros procesos.
- Manejo de logs.
- Balanceo de carga.
- Iniciar tus aplicaciones una vez el servidores se inicia.
- Capacidad de “watch your code” si tu codigo cambia.
Instalación
Para poder instalar pm2 necesitas tener previamente instaldo nodejs en vuestor servidor, ya sea un vps o algún disposotivo tipo Raspberry Pi. Para instalar solo tenemos que ejecutar el siguiente comando en la terminal:
npm install -g pm2
Comandos básicos y su uso
Primero desde la terminal buscasmos la carpeta que contiene nuestro archivo js. Por ejemplo si lo tengo en /var/www/bot pués en la terminal pongo cd /var/www/bot
y una vez dentro ejecuto el archivo js. En mi caso «bot.js»
pm2 start bot.js
Para reinicarlo:
pm2 restart bot.js
Para detenerlo:
pm2 stop bot.js
Si queremos ponerle un alias para manejarlo mejor:
pm2 start bot.js –name «mi-bot»
Tanto para reiniciar como para parar podeis usar o el nombre del alias, el id del proceso o el nombre del archivo:
Ej:
pm2 start 0 //Si tiene el id 0 el proceso
pm2 start mi-bot //Si le asiganaste un alias
pm2 start bot.js //Si no le asignaste un alias
Si quieres obtener una lista de los procesos actuales con sus nombres y ids usa el siguiente comando:
pm2 list
Otro comando muy útil es el monitor en el cual encontrarás información más detallada y actualizada en tiempo real. Para poder acceder escribe el siguiente comando:
pm2 monit
El siguiente comando te mostrará los últimos log y se quedará arrancado, mostrando nuevos mensajes que los procesos envíen como salida por consola:
pm2 log
Generación del script de startup
Para acabar nuestra configuración básica de PM2 necesitamos configurar el script de startup del servidor.
Con tus procesos en marcha, arrancados mediante PM2, ahora puedes generar de manera automatizada el correspondiente script, sin tener que preocuparte por la programación, ya que PM2 lo generará para ti. Para ello tenemos el comando siguiente:
pm2 startup
Yo utilicé
pm2 start /home/programandoweb/public_html/apps/skygsolutions/node_modules/react-scripts/scripts/start.js –name skygsolutions