Настройка Supervisor

Установка supervisor

debian sudo apt install supervisor или centOS sudo yum install supervisor

для debian

В /etc/supervisor/conf.d создаём конфиг с именем нашей службы, например queue-laravel.conf

После установки выполните

sudo systemctl enable supervisor --now для Debian

sudo systemctl start supervisord --now для CENTOS

В конфиг пишем примерно следующее, без комментариев.

[program:queue-laravel] ==Имя программы, должно совпадать с именем файла конфига==
process_name=%(program_name)s_%(process_num)02d ==задаётся имя процесса. В данном случае имя программы+номер процесса==
command=php /var/www/mfc-core/artisan queue:work --sleep=3 ==команда запуска программы с параметрами. --sleep=3 - время, на которое будет «засыпать» обработчик, если нет новых задач==
autostart=true ==Должен ли супервизор автоматически запускать программу при ее запуске (например, при первоначальном включении питания или после перезагрузки)==
autorestart=true ==автоматически перезапускать программу в случае её остановки==
user=www-data ==Пользователь от имени которого стартовать программу ==
numprocs=8 ==колличество процессов программы==
redirect_stderr=true ==перенаправление вывода в stdout_logfile==
stdout_logfile=/home/forge/app.com/worker.log ==расположение log файла==

сохраняем файл конфига.

Важно!!! Для корректной работы механизма и для предотвращения конфликтов с правами на файлы необходимо, что бы пользователь (параметр user), от имени которого стартовать программу, совпадал с пользователем от которого работает служба Apache. Например www-data.

  1. перезапускаем supervisor sudo supervisorctl reread

  2. обновляем конфигурацию supervisor sudo supervisorctl update

  3. Запускаем нашу задачу sudo supervisorctl start queue-laravel:*

для centOS

конфиг создаём в /etc/supervisord.d/queue-laravel.ini

Содержание конфига идентично debian.

Отличие debian и centOS в формате конфига. conf или ini. При желании в конфиге supervisor можно изменить include файла программы.

debian - /etc/supervisor/supervisord.conf

centOS - /etc/supervisord.conf

внизу файла блок [include] содержит путь и маску к конфигам программ.4