Подтвердить что ты не робот

Иметь надзорный период Периодически перезапускать дочерние процессы

Я использую Supervisor (3.0a12) на ubuntu 12.04 для управления рабочими персоналом php. Иногда рабочие попадают в странное состояние, где они используют тонны процессора и барана. Хотя я думаю, что это проблема, я подумал, что было бы неплохо, если бы Супервизор автоматически убивал и время от времени обновлял рабочих. Я смотрел http://supervisord.org/configuration.html конфигурационную документацию и, похоже, не видел никаких параметров, которые могли бы это сделать.

Кто-нибудь знает, возможно ли, что супервизор периодически перезапускает все процессы, которые он управляет?

4b9b3361

Ответ 1

Пакет superlance предлагает memmon плагин для супервизора. memmon отслеживает использование памяти для программ под контролем супервизора.

Вы настраиваете memmon как супервизор eventlistener:

[eventlistener:memmon]
command=memmon -a 200MB
events=TICK_60

Вышеупомянутая конфигурация устанавливает memmon для перезапуска любой программы под контролем супервизора, если она превышает 200MB-память. Он проверяет каждые 60 секунд.

Вы можете настроить memmon для мониторинга определенных программ или групп программ, установки ограничений для каждого.

Ответ 2

Вы можете использовать crontab для передачи команд непосредственно в supervisorctl. Например, следующее будет перезапускать процесс каждые 20 минут.

0,20,40 * * * * /path/to/supervisorctl restart [supervisor_process]