Что такое Supervisor?

Запуск процессов в supervisor

Использование Supervisor удобно при работе с постоянно запущенными процессами на VPS или выделенном сервере. Он позволяет автоматизировать запуск и контроль служб, поддерживая стабильную работу проектов.

Supervisor — это менеджер процессов, который значительно упрощает управление длительно работающими программами и предоставляет удобный интерфейс. Он состоит из серверной части под названием supervisord, которая создаёт и контролирует процессы, и интерфейса supervisorctl (системного или веб), предназначенного для управления и мониторинга supervisord.

Установка

В Debian/Ubuntu Supervisor можно установить из репозитория:

apt-get install supervisor

После установки Supervisor необходимо настроить и добавить программы или процессы, которыми он будет управлять. Файл конфигурации находится по пути /etc/supervisor/supervisord.conf (в Ubuntu и Debian) или /etc/supervisord.conf — в других системах.

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

[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=/usr/bin/php /var/www/worker.php — путь к исполняемому файлу;
  • stdout_logfile=/var/log/worker.log — путь к файлу для вывода консоли;
  • autostart=true — автоматический запуск процесса при старте Supervisor;
  • autorestart=true — автоматический перезапуск при сбое;
  • user=www-data — пользователь, от имени которого запускается процесс;
  • stopsignal=KILL — сигнал для остановки;
  • numprocs=1 — количество экземпляров процесса.

После добавления новых процессов необходимо перезапустить Supervisor:

/etc/init.d/supervisor restart

Supervisor позволяет включить веб-интерфейс supervisorctl, который активируется через конфигурационный файл. Для этого нужно изменить секцию [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
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам