Настройка 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
.
-
перезапускаем supervisor
sudo supervisorctl reread
-
обновляем конфигурацию supervisor
sudo supervisorctl update
-
Запускаем нашу задачу
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