php - Haga que Supervisord reinicie periódicamente los procesos secundarios
python gearman (2)
Puede usar crontab para pasar comandos directamente a supervisorctl. Por ejemplo, lo siguiente reiniciará un proceso cada 20 minutos.
0,20,40 * * * * /path/to/supervisorctl restart [supervisor_process]
Estoy usando Supervisor (3.0a12) en ubuntu 12.04 para administrar a los trabajadores de php gearman. A veces los trabajadores quedan atrapados en un estado extraño en el que usan toneladas de CPU y ariete. Mientras estoy resolviendo este problema, pensé que sería bueno que el Supervisor automáticamente mate y actualice a los trabajadores de vez en cuando. Revisé http://supervisord.org/configuration.html la documentación de configuración y no vi ninguna opción que permitiera esto.
¿Alguien sabe si es posible tener supervisord reiniciar periódicamente todos los procesos que gobierna?
El paquete superlance
ofrece un complemento memmon
para supervisor. memmon
monitorea el uso de la memoria para programas bajo control de supervisor.
Configura memmon
como supervisor de eventos:
[eventlistener:memmon]
command=memmon -a 200MB
events=TICK_60
La configuración anterior establece memmon para reiniciar cualquier programa bajo el control del supervisor si excede el uso de memoria de 200 MB. Comprueba cada 60 segundos.
Puede configurar memmon para monitorear programas específicos o grupos de programas, estableciendo límites para cada uno.