"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Configuración del acceso multiusuario de PMor en una instancia de Ubuntu

Configuración del acceso multiusuario de PMor en una instancia de Ubuntu

Publicado el 2024-08-28
Navegar:620

Setting Up PMor Multi-User Access on Ubuntu Instance

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.

¿Por qué configurar PM2 como un servicio para todo el sistema?

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:

  • Visibilidad del proceso: todos los usuarios del servidor pueden ver y administrar los procesos PM2.
  • Inicio automático: PM2 se iniciará automáticamente al iniciar el sistema, lo que garantiza que sus aplicaciones estén siempre ejecutándose.
  • Administración centralizada: los registros y los estados de los procesos están centralizados, lo que facilita la administración de sus aplicaciones.

Requisitos previos

Antes de comenzar, asegúrese de tener lo siguiente:

  1. Una instancia de Google Cloud Ubuntu.
  2. Node.js y npm instalados en la instancia.
  3. PM2 instalado globalmente.

Paso 1: Instale PM2 globalmente

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.

Paso 2: configurar PM2 como un servicio para 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í, debe reemplazarse con el nombre de usuario del usuario que configuró inicialmente PM2. Esto garantiza que el proceso PM2 esté vinculado al directorio de inicio del usuario correcto.

Paso 3: ejecutar el comando generado

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.

Paso 4: guarde la lista de procesos PM2

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.

Paso 5: habilite el servicio PM2 para que se inicie al arrancar

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.

Paso 6: acceder a PM2 con cualquier usuario

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.

Paso 7: Configuración adicional para registros compartidos (opcional)

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.

Paso 8: Gestión de procesos PM2 entre usuarios

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.

Conclusión

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!

Declaración de liberación Este artículo se reproduce en: https://dev.to/manojspace/setting-up-pm2-for-multi-user-access-on-ubuntu-instance-5g95?1 Si hay alguna infracción, comuníquese con Study_golang@163 .com para eliminarlo
Último tutorial Más>

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