Что такое Supervisor и как его настроить

Как установить Supervisor и управлять длительно работающими процессами на сервере.

Supervisor — менеджер процессов, который упрощает управление длительно работающими программами и обеспечивает их стабильную работу. Удобен при работе с постоянно запущенными процессами на VPS или выделенном сервере.

Supervisor состоит из двух компонентов: серверной части supervisord, которая создаёт и контролирует процессы, и интерфейса supervisorctl для управления и мониторинга.

Установка

На Debian и Ubuntu Supervisor устанавливается из стандартного репозитория:

apt-get install supervisor

Настройка

Конфигурационный файл находится по пути /etc/supervisor/supervisord.conf на Debian и Ubuntu, или /etc/supervisord.conf на других дистрибутивах.

Чтобы добавить процесс под управление Supervisor, создайте соответствующую секцию в конфигурационном файле:

[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

Описание параметров:

  • [program:worker] — имя процесса.
  • command — путь к исполняемому файлу.
  • stdout_logfile — путь к файлу для вывода консоли.
  • autostart — автоматический запуск при старте Supervisor.
  • autorestart — автоматический перезапуск при сбое.
  • user — пользователь, от имени которого запускается процесс.
  • stopsignal — сигнал для остановки процесса.
  • numprocs — количество экземпляров процесса.

После изменения конфигурации перезапустите Supervisor:

/etc/init.d/supervisor restart

Веб-интерфейс

Supervisor поддерживает веб-интерфейс для мониторинга и управления процессами. Чтобы его включить, раскомментируйте и настройте секцию [inet_http_server] в конфигурационном файле:

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

Мониторинг событий

В Supervisor встроен механизм мониторинга событий для получения уведомлений об ошибках. Пример конфигурации для оповещений о превышении потребления памяти:

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

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам