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
- Un servidor con un sistema operativo basado en Linux (Ubuntu, CentOS, Debian, etc.).
- Acceso de usuario con privilegios sudo.
- 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.

