Как установить supervisor в Ubuntu 22.04 для работы с Laravel

Supervisor - это системный процесс-менеджер, который позволяет запускать и контролировать фоновые процессы в операционной системе. Он особенно полезен и необходим при работе с Laravel, где может потребоваться запуск очередей задач, планировщиков и других фоновых процессов.
В этой статье я расскажу вам, как установить и настроить supervisor в Ubuntu 22.04 для работы с Laravel.
Обновление системы
Перед установкой supervisor необходимо обновить ОС. Выполните следующие команды в терминале:
sudo apt update
sudo apt upgrade
Установка supervisor
Для установки supervisor выполните следующую команду:
sudo apt install supervisor
Создание конфигурационного файла для Laravel
Теперь нам необходимо создать конфигурационный файл для запуска Laravel-приложения с помощью supervisor. Создайте новый файл с расширением .conf
в директории /etc/supervisor/conf.d/
. Например, выполните следующую команду:
sudo nano /etc/supervisor/conf.d/laravel-worker.conf
Откроется текстовый редактор nano. Вставьте следующий код в файл:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /путь_к_проекту/artisan queue:work --tries=3 --sleep=3autostart=trueautorestart=trueuser=пользователь_системы
numprocs=8redirect_stderr=truestdout_logfile=/путь_к_лог_файлу/worker.log
Внимание: Замените /путь_к_проекту/
на фактический путь к вашему Laravel-проекту, /путь_к_лог_файлу/worker.log
на путь к желаемому файлу журнала, а пользователь_системы
на имя пользователя, под которым вы работаете. (обычно это www-data).
Ни в коем случае не используйте root
Более подробно о флагах, с которыми запускается artisan queue:work можно почитать в документации Laravel
Перезапуск supervisor и запуск Laravel-воркера
После создания конфигурационного файла необходимо перезапустить supervisor, чтобы он загрузил новый файл. Выполните следующую команду:
sudo supervisorctl reread
sudo supervisorctl update
Теперь мы можем запустить Laravel-воркер, используя supervisor. Выполните следующую команду:
sudo supervisorctl start laravel-worker:*
Проверка работоспособности
Проверьте работу Laravel-воркера, выполните следующую команду:
sudo supervisorctl status
Вы должны увидеть вывод, подобный следующему:
laravel-worker:laravel-worker_00 RUNNING pid 12345, uptime 0:10:00laravel-worker:laravel-worker_01 RUNNING pid 23456, uptime 0:05:00...
Если видите подобный вывод, это означает, что supervisor успешно запустил Laravel-воркера.