Если PM2-приложение падает, сайт или API может работать рывками: процесс стартует, падает, снова стартует и уходит в restart loop.

Причина обычно видна в pm2 logs: uncaught exception, нехватка памяти, неверный env, недоступная база, занятый порт или ошибка после деплоя.

Почему это мешает работе

Периодические падения хуже полного простоя: часть пользователей видит работающий сайт, часть — ошибки 502/504, а заявки теряются непредсказуемо.

Частые причины

  • ошибка в коде при старте
  • не хватает env-переменных
  • утечка памяти
  • база данных недоступна
  • порт занят
  • неверный ecosystem.config.js

План проверки

  1. Посмотреть pm2 status и pm2 logs.
  2. Проверить число рестартов и время падения.
  3. Проверить env и рабочую директорию.
  4. Проверить память и лимиты.
  5. Исправить причину и перезапустить процесс контролируемо.

Что лучше не делать

  • просто ставить бесконечные рестарты
  • очищать логи до анализа
  • игнорировать memory leak
  • запускать из другой директории без проверки путей

Как я решаю такую задачу

Я разбираю поведение процесса по логам PM2 и системным метрикам, затем исправляю причину падения, а не только настраиваю автоперезапуск.

  1. Уточняю симптом, пример страницы или команды и время появления проблемы.
  2. Проверяю логи, настройки, окружение и реальные ответы сервисов.
  3. Исправляю минимально достаточную часть, чтобы не сломать рабочие сценарии.
  4. Тестирую результат на типовом сценарии клиента или администратора.
  5. Передаю краткое объяснение причины и профилактику на будущее.

Что подготовить для оценки

  • ссылку на сайт, сервис или репозиторий, если он нужен
  • текст ошибки, скриншот или вывод команды
  • что меняли перед появлением проблемы
  • доступ к панели, серверу или сервису только если без него нельзя проверить
  • приоритет: быстро восстановить работу или спокойно разобраться в причине

Сроки

env или путь запуска30-90 минут
ошибка кода или база1-3 часа
утечка памятипо наблюдению

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

PM2 сам должен поднимать приложение?

Да, но если процесс падает постоянно, автоподнятие не решает причину.

Где смотреть ошибку?

Обычно в pm2 logs, а также в логах приложения и system journal.

Что такое restart loop?

Это ситуация, когда приложение запускается и почти сразу падает снова.

Итог

PM2 помогает держать процесс, но не лечит ошибки приложения. Если процесс падает, нужно смотреть логи, env, память и зависимости.

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