Programación y sistemas

Guía completa: Cómo instalar y configurar SupervisorD en tu servidor

SupervisorD

En el desarrollo web y la administración de servidores es común tener que gestionar múltiples procesos que deben mantenerse activos. SupervisorD (o simplemente Supervisor) es una herramienta potente que te permite controlar, supervisar y reiniciar procesos en segundo plano de forma sencilla.

En esta guía verás cómo instalar y configurar SupervisorD en un servidor Linux paso a paso, para que puedas gestionar tus procesos de manera eficiente.

¿Qué es SupervisorD?

SupervisorD es un sistema de gestión y monitorización que permite controlar múltiples procesos en un sistema GNU/Linux. Se encarga de iniciar los procesos como si fueran servicios y reiniciarlos automáticamente en caso de fallo. Además dispone de un panel de control web para ver el estado de cada uno.

Requisitos previos

  1. Un servidor con un sistema operativo basado en Linux (Ubuntu, CentOS, Debian, etc.).
  2. Acceso de usuario con privilegios sudo.
  3. Python instalado (SupervisorD está basado en Python).

Paso 1: Instalación de SupervisorD

En la mayoría de distribuciones, SupervisorD está en los repositorios oficiales.

En Ubuntu/Debian

sudo apt update
sudo apt install supervisor

En CentOS/RHEL

sudo yum install epel-release
sudo yum install supervisor

Verifica que se ha instalado correctamente consultando la versión:

supervisord -v

Paso 2: Configuración básica de Supervisor

SupervisorD usa un archivo de configuración principal en /etc/supervisor/supervisord.conf. Si no existe, puedes generarlo con:

echo_supervisord_conf > /etc/supervisor/supervisord.conf

Este archivo contiene la configuración global y suele incluir al final la directiva que carga los archivos del directorio conf.d/, donde definiremos cada proceso.

Paso 3: Configuración de programas supervisados

Para supervisar un proceso, crea un archivo .conf en /etc/supervisor/conf.d/. Por ejemplo, para un servidor web con gunicorn, crea /etc/supervisor/conf.d/gunicorn.conf con:

[program:gunicorn]
command=/usr/bin/gunicorn --workers 3 myapp:app
directory=/var/www/myapp
autostart=true
autorestart=true
stderr_logfile=/var/log/gunicorn.err.log
stdout_logfile=/var/log/gunicorn.out.log
user=www-data
  • command: comando para iniciar el proceso.
  • directory: directorio desde donde se ejecuta.
  • autostart: lo inicia automáticamente al arrancar Supervisor.
  • autorestart: lo reinicia si se detiene.
  • stderr_logfile y stdout_logfile: archivos donde se guardan los logs.
  • user: usuario con el que se ejecuta el proceso.

Paso 4: Recargar la configuración

Tras añadir la configuración, recarga Supervisor para que detecte el nuevo proceso:

sudo supervisorctl reread
sudo supervisorctl update

Paso 5: Gestionar procesos con supervisorctl

Con los programas configurados, gestiónalos con supervisorctl:

sudo supervisorctl start gunicorn    # iniciar un proceso
sudo supervisorctl stop gunicorn     # detener un proceso
sudo supervisorctl restart gunicorn  # reiniciar un proceso
sudo supervisorctl status            # ver el estado de todos

Paso 6: Arranque automático con el sistema

Asegúrate de que Supervisor arranque al iniciar el servidor:

# Ubuntu / Debian
sudo systemctl enable supervisor
sudo systemctl start supervisor

# CentOS / RHEL
sudo systemctl enable supervisord
sudo systemctl start supervisord

Paso 7: Supervisión y logs

SupervisorD registra la actividad de los procesos que gestiona. Para seguir su log en tiempo real:

sudo tail -f /var/log/supervisor/supervisord.log

Preguntas frecuentes

¿Cuál es la diferencia entre reread y update?

reread vuelve a leer los archivos de configuración pero no aplica cambios; update aplica esos cambios, arrancando, deteniendo o reiniciando solo los programas que se han añadido o modificado.

¿Supervisor o systemd?

systemd es ideal para servicios del sistema. Supervisor brilla para gestionar procesos de aplicación (workers, colas, scripts) de forma centralizada, con un supervisorctl cómodo y logs unificados, sin tocar la configuración de systemd.

Cambio la configuración y no se aplica, ¿por qué?

Recuerda ejecutar supervisorctl reread y supervisorctl update tras editar un .conf. Para reiniciar por completo el propio Supervisor, usa supervisorctl reload.

Con estos pasos ya tienes SupervisorD instalado y gestionando tus procesos, reiniciándolos automáticamente si fallan. Añade un archivo .conf por cada proceso que quieras mantener siempre activo y olýdate de que se caigan.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.