La administración de aplicaciones Node.js en un servidor de producción a menudo requiere un administrador de procesos para garantizar que sus aplicaciones se ejecuten sin problemas y se recuperen automáticamente de fallas. PM2 es uno de los administradores de procesos más populares para Node.js y ofrece potentes funciones como monitoreo de procesos, administración de registros y modo de clúster.
Si estás ejecutando una aplicación en una instancia de Google Cloud Ubuntu, es posible que te encuentres con una situación en la que los procesos PM2 solo sean visibles para el usuario que los inició. Esto puede resultar problemático si su servidor tiene varios usuarios, como desarrolladores, administradores de sistemas o scripts de implementación automatizados. En esta publicación de blog, explicaremos los pasos para configurar PM2 como un servicio para todo el sistema, haciéndolo accesible para todos los usuarios del servidor.
De forma predeterminada, PM2 se ejecuta como un proceso bajo el usuario que lo inició. Esto significa que si ingresa SSH a su servidor como un solo usuario e inicia un proceso PM2, ese proceso no será visible para otro usuario que inicie sesión a través de SSH. Para solucionar esto, podemos configurar PM2 para que se ejecute como un servicio a nivel del sistema. Este enfoque tiene varias ventajas:
Antes de comenzar, asegúrese de tener lo siguiente:
Para garantizar que todos los usuarios puedan acceder a PM2, se debe instalar globalmente. Puede instalar PM2 globalmente usando npm:
sudo npm install -g pm2
Este comando instala PM2 en el directorio global npm, haciéndolo disponible en todo el sistema.
A continuación, debemos configurar PM2 para que se ejecute como un servicio. Esto permitirá que PM2 administre procesos a nivel del sistema en lugar de estar vinculado a una sesión de usuario específica.
Ejecute el siguiente comando para generar el script de inicio necesario para PM2:
pm2 startup
Este comando detecta el sistema de inicio utilizado por su instancia de Ubuntu (normalmente systemd) y proporciona un comando que debe ejecutarse con sudo para configurar PM2 como un servicio para todo el sistema. El resultado se verá así:
[PM2] Init System found: systemd [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u--hp /home/
Aquí,
Copie el comando proporcionado en el resultado del paso anterior y ejecútelo. Por ejemplo:
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u johndoe --hp /home/johndoe
Este comando crea un servicio systemd que inicia PM2 con las variables de entorno y el contexto de usuario correctos.
Si ya tiene procesos ejecutándose en PM2 y desea conservarlos después de los reinicios, debe guardar la lista de procesos actual. Esto crea un archivo de volcado que PM2 utilizará para restaurar procesos cuando se inicie el sistema:
pm2 save
El comando pm2 save guarda la lista actual de procesos administrados en un archivo JSON en ~/.pm2/dump.pm2. Este archivo se carga automáticamente cuando se inicia PM2, lo que garantiza que sus aplicaciones resucite después de reiniciar.
Para garantizar que PM2 se inicie automáticamente cuando se inicia el sistema, debe habilitar el servicio:
sudo systemctl enable pm2-johndoe
Reemplace johndoe con el nombre de usuario apropiado. Este comando habilita el servicio PM2, asegurando que se inicie cada vez que se inicia el sistema.
Ahora que PM2 está configurado como un servicio para todo el sistema, debería ser accesible para cualquier usuario en el servidor. Para comprobar el estado de los procesos o listarlos, cualquier usuario puede ejecutar:
pm2 list
Este comando mostrará la lista de procesos administrados por el servicio PM2 en todo el sistema, independientemente de qué usuario haya iniciado sesión.
Si necesita que varios usuarios puedan acceder a los registros de PM2, es posible que deba ajustar los permisos de los archivos o configurar PM2 para almacenar registros en un directorio compartido. Esto garantiza que todos los usuarios puedan ver y administrar registros de los procesos que se ejecutan en PM2.
Para cambiar el directorio del archivo de registro, puede utilizar la siguiente variable de entorno:
export PM2_HOME=/path/to/shared/pm2/home
Establezca esto en un archivo de configuración global, como /etc/environment, para que sea persistente en todas las sesiones.
Una vez que PM2 está configurado como servicio, los usuarios pueden administrar procesos usando comandos estándar de PM2. Sin embargo, según los permisos y las funciones de los usuarios, algunos comandos pueden requerir acceso sudo. Por ejemplo:
sudo pm2 list
Este comando enumerará los procesos administrados por el servicio PM2 de todo el sistema, lo que facilitará a los administradores y desarrolladores la colaboración en la administración del servidor.
La configuración de PM2 como un servicio para todo el sistema en su instancia de Ubuntu garantiza que sus aplicaciones Node.js estén administradas de manera sólida y accesibles para todos los usuarios en el servidor. Esta configuración es particularmente útil en entornos con múltiples usuarios o procesos de implementación automatizados, ya que proporciona una forma confiable y centralizada de administrar aplicaciones.
Si sigue los pasos descritos en esta guía, puede asegurarse de que PM2 esté disponible para todos los usuarios, que sus procesos se reinicien automáticamente después de reiniciar el sistema y que los registros sean fácilmente accesibles. Esto no solo simplifica la administración del servidor sino que también mejora la confiabilidad de sus aplicaciones en producción.
¡Feliz codificación!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3