Qué es Supervisor y cómo configurarlo

Cómo instalar Supervisor y gestionar procesos de larga duración en un servidor.

Supervisor es un gestor de procesos que simplifica la ejecución y supervisión de programas de larga duración. Es especialmente útil para mantener activos los procesos en segundo plano en un VPS o un servidor dedicado.

Supervisor consta de dos componentes: supervisord — el proceso servidor que lanza y supervisa los procesos hijos — y supervisorctl, una interfaz de línea de comandos y web para gestionar supervisord.

Instalación

En Debian y Ubuntu, instala Supervisor desde el repositorio estándar:

apt-get install supervisor

Configuración

El archivo de configuración se encuentra en /etc/supervisor/supervisord.conf en Debian y Ubuntu, o en /etc/supervisord.conf en otras distribuciones.

Para añadir un proceso, define una sección de programa en el archivo de configuración:

[program:worker]
command=/usr/bin/php /var/www/worker.php
stdout_logfile=/var/log/worker.log
autostart=true
autorestart=true
user=www-data
stopsignal=KILL
numprocs=1

Descripción de los parámetros:

  • [program:worker] — el nombre del proceso.
  • command — ruta al ejecutable.
  • stdout_logfile — ruta al archivo de log para la salida de consola.
  • autostart — inicia el proceso automáticamente al arrancar Supervisor.
  • autorestart — reinicia el proceso automáticamente si falla.
  • user — la cuenta de usuario con la que se ejecuta el proceso.
  • stopsignal — la señal enviada para detener el proceso.
  • numprocs — el número de instancias del proceso a ejecutar.

Tras actualizar la configuración, reinicia Supervisor:

/etc/init.d/supervisor restart

Interfaz web

Supervisor incluye una interfaz web integrada para monitorizar y controlar los procesos. Para habilitarla, descomenta y configura la sección [inet_http_server] en el archivo de configuración:

[inet_http_server]
port=127.0.0.1:9001
username=some_user_name
password=some_password

Monitorización de eventos

Supervisor cuenta con un mecanismo integrado de escucha de eventos para recibir notificaciones de error. A continuación se muestra un ejemplo de configuración que envía una alerta cuando el uso de memoria supera un umbral:

[eventlistener:memmon]
command=memmon -a 200MB -m error@site.com
events=TICK_60

Ayuda

¿Tienes dudas o necesitas ayuda? Escríbenos a través del sistema de tickets — siempre estamos aquí para ayudarte!

¿Necesitas ayuda?Nuestros ingenieros te ayudarán gratuitamente con cualquier pregunta en minutosContáctanos