Supervisor нужен, чтобы фоновые процессы не зависели от открытой консоли. Он запускает воркеры, следит за ними и поднимает после падения.

Для Laravel queue, парсеров, ботов и сервисных задач это часто обязательная часть production-настройки.

Когда это нужно делать

Supervisor нужен, если у проекта есть фоновые процессы: очереди, обработчики webhook, боты, парсеры, долгие задачи или Node/PHP-воркеры.

Что обычно мешает

  • worker запускают вручную и он останавливается
  • нет автозапуска после перезагрузки
  • логи процесса не сохраняются
  • процесс работает от неправильного пользователя
  • не задана рабочая директория
  • переменные окружения не попадают в процесс

Как проходит работа

  1. Определяю команду запуска и пользователя.
  2. Создаю конфиг Supervisor с directory, user и logs.
  3. Настраиваю autostart и autorestart.
  4. Проверяю запуск, остановку и перезапуск.
  5. Смотрю логи и поведение после падения процесса.

Риски, которые лучше не игнорировать

  • запускать процесс от root без необходимости
  • не писать логи
  • создать бесконечный restart loop
  • не передать нужный .env
  • не обновить Supervisor после изменения конфига

Что будет на выходе

  • рабочий конфиг Supervisor
  • автозапуск процесса
  • логи stdout/stderr
  • правильный пользователь и директория
  • проверка перезапуска

Что подготовить

  • ссылку на сайт, репозиторий или серверный проект
  • описание текущей проблемы и желаемого результата
  • логи, скриншоты или текст ошибки, если они есть
  • информацию о хостинге, CMS, фреймворке или сервере
  • приоритет: быстро исправить или спокойно настроить правильно

Сроки

Один worker1-2 часа
Несколько процессов2-4 часа
Сложная схемапо списку команд

Вопрос-ответ

Supervisor заменяет PM2?

Для Node.js чаще используют PM2, но Supervisor универсален для разных процессов.

Почему процесс падает сразу?

Причина обычно в команде, env, рабочей директории, правах или зависимостях.

Нужно ли перезагружать сервер?

Обычно нет, достаточно reread/update и перезапуска нужной программы.

Итог

Supervisor делает фоновые задачи управляемыми: автозапуск, перезапуск, логи и понятный контроль процесса.

Нужна похожая задача? Напишите в Telegram: @rabotator_support. Пришлите ссылку, симптом и доступы только к нужной части проекта, я посмотрю и предложу понятный план.