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!