Gestionar procesos de Umami con Supervisor

4 min

language: ja bn en es hi pt ru zh-cn zh-tw

Hola, soy un inútil.
Aunque el sitio oficial de Umami recomienda la gestión de procesos con pm2, me gustaría gestionar los procesos de Umami utilizando el más simple y antiguo Supervisor.

¿Qué es Supervisor?

Es posible demonizar procesos y configurar fácilmente los archivos de registro en caso de un fallo utilizando *.conf.
Parece que el desarrollo se detuvo por un tiempo, pero ha resurgido un poco gracias al movimiento Systemd Free, y es posible demonizar y gestionar procesos que originalmente se ejecutaban con otros init utilizando Supervisor.

Como ya lo tengo instalado, omitiré el método de instalación.

Configuración

Crearemos un archivo de configuración como umami.conf.

sudo vim /etc/supervisor/conf.d/umami.conf

Lo escribí de la siguiente manera.

  
[program`umami]  
command=npm start  
directory=/var/www/html/umami         ; Directorio de la aplicación  
autostart=true                        ; Inicia automáticamente el proceso al arrancar el servidor  
autorestart=true                      ; Reinicia automáticamente el proceso si termina  
stderr_logfile=/var/log/umami.err.log ; Ubicación del archivo de registro de error estándar  
stderr_logfile_maxbytes=1MB           ; Tamaño máximo del archivo de registro  
stdout_logfile=/var/log/umami.out.log ; Ubicación del archivo de registro de salida estándar  
stdout_logfile_maxbytes=1MB           ; Tamaño máximo del archivo de registro  
environment=DATABASE_URL="YourDB",APP_SECRET="YourSecret",PORT="YourPort",HOSTNAME="YourHost" ;  
user=test_user                          ; Usuario que ejecuta  

Es un poco tarde para decirlo, pero en realidad debería haberlo colocado en /var/www/umami...

Ejecución

sudo supervisorctl reread  
sudo supervisorctl update  
sudo supervisorctl start umami  
sudo supervisorctl status umami

Y si lo haces,

umami                            RUNNING   pid 801, uptime 0`19`12

Si aparece esto, significa que está funcionando correctamente. Si falla,

view /var/log/umami.err.log  
view /var/log/umami.out.log

revisa los archivos para ver la causa del fallo de inicio.

Supervisor es genial

Es muy bueno porque permite una gestión sencilla solo con archivos *.conf.
Dicho esto, pm2 también muestra el uso de memoria, pero me preocupa la futura dependencia de las librerías de npm, así que personalmente prefiero algo tan simple como supervisord.
Además, no veo la necesidad de ejecutar la gestión de procesos en un entorno JavaScript. Hasta la próxima.
Saludos.

Related Posts