Что такое 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
Помощь
Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!