Если PM2-приложение падает, сайт или API может работать рывками: процесс стартует, падает, снова стартует и уходит в restart loop.
Причина обычно видна в pm2 logs: uncaught exception, нехватка памяти, неверный env, недоступная база, занятый порт или ошибка после деплоя.
Почему это мешает работе
Периодические падения хуже полного простоя: часть пользователей видит работающий сайт, часть — ошибки 502/504, а заявки теряются непредсказуемо.
Частые причины
- ошибка в коде при старте
- не хватает env-переменных
- утечка памяти
- база данных недоступна
- порт занят
- неверный ecosystem.config.js
План проверки
- Посмотреть pm2 status и pm2 logs.
- Проверить число рестартов и время падения.
- Проверить env и рабочую директорию.
- Проверить память и лимиты.
- Исправить причину и перезапустить процесс контролируемо.
Что лучше не делать
- просто ставить бесконечные рестарты
- очищать логи до анализа
- игнорировать memory leak
- запускать из другой директории без проверки путей
Как я решаю такую задачу
Я разбираю поведение процесса по логам PM2 и системным метрикам, затем исправляю причину падения, а не только настраиваю автоперезапуск.
- Уточняю симптом, пример страницы или команды и время появления проблемы.
- Проверяю логи, настройки, окружение и реальные ответы сервисов.
- Исправляю минимально достаточную часть, чтобы не сломать рабочие сценарии.
- Тестирую результат на типовом сценарии клиента или администратора.
- Передаю краткое объяснение причины и профилактику на будущее.
Что подготовить для оценки
- ссылку на сайт, сервис или репозиторий, если он нужен
- текст ошибки, скриншот или вывод команды
- что меняли перед появлением проблемы
- доступ к панели, серверу или сервису только если без него нельзя проверить
- приоритет: быстро восстановить работу или спокойно разобраться в причине
Сроки
| env или путь запуска | 30-90 минут |
|---|---|
| ошибка кода или база | 1-3 часа |
| утечка памяти | по наблюдению |
Вопрос-ответ
PM2 сам должен поднимать приложение?
Да, но если процесс падает постоянно, автоподнятие не решает причину.
Где смотреть ошибку?
Обычно в pm2 logs, а также в логах приложения и system journal.
Что такое restart loop?
Это ситуация, когда приложение запускается и почти сразу падает снова.
Итог
PM2 помогает держать процесс, но не лечит ошибки приложения. Если процесс падает, нужно смотреть логи, env, память и зависимости.
Если нужна похожая диагностика или доработка, напишите в Telegram: @rabotator_support. Посмотрю симптомы, уточню детали и предложу понятный план исправления.