Supervisor нужен, чтобы фоновые процессы не зависели от открытой консоли. Он запускает воркеры, следит за ними и поднимает после падения.
Для Laravel queue, парсеров, ботов и сервисных задач это часто обязательная часть production-настройки.
Когда это нужно делать
Supervisor нужен, если у проекта есть фоновые процессы: очереди, обработчики webhook, боты, парсеры, долгие задачи или Node/PHP-воркеры.
Что обычно мешает
- worker запускают вручную и он останавливается
- нет автозапуска после перезагрузки
- логи процесса не сохраняются
- процесс работает от неправильного пользователя
- не задана рабочая директория
- переменные окружения не попадают в процесс
Как проходит работа
- Определяю команду запуска и пользователя.
- Создаю конфиг Supervisor с directory, user и logs.
- Настраиваю autostart и autorestart.
- Проверяю запуск, остановку и перезапуск.
- Смотрю логи и поведение после падения процесса.
Риски, которые лучше не игнорировать
- запускать процесс от root без необходимости
- не писать логи
- создать бесконечный restart loop
- не передать нужный .env
- не обновить Supervisor после изменения конфига
Что будет на выходе
- рабочий конфиг Supervisor
- автозапуск процесса
- логи stdout/stderr
- правильный пользователь и директория
- проверка перезапуска
Что подготовить
- ссылку на сайт, репозиторий или серверный проект
- описание текущей проблемы и желаемого результата
- логи, скриншоты или текст ошибки, если они есть
- информацию о хостинге, CMS, фреймворке или сервере
- приоритет: быстро исправить или спокойно настроить правильно
Сроки
| Один worker | 1-2 часа |
|---|---|
| Несколько процессов | 2-4 часа |
| Сложная схема | по списку команд |
Вопрос-ответ
Supervisor заменяет PM2?
Для Node.js чаще используют PM2, но Supervisor универсален для разных процессов.
Почему процесс падает сразу?
Причина обычно в команде, env, рабочей директории, правах или зависимостях.
Нужно ли перезагружать сервер?
Обычно нет, достаточно reread/update и перезапуска нужной программы.
Итог
Supervisor делает фоновые задачи управляемыми: автозапуск, перезапуск, логи и понятный контроль процесса.
Нужна похожая задача? Напишите в Telegram: @rabotator_support. Пришлите ссылку, симптом и доступы только к нужной части проекта, я посмотрю и предложу понятный план.