DGuard

Сервер вылетает или не запускается: как читать логи и краши

Причина почти любого падения сервера записана в logs/latest.log или в папке crash-reports. Дальше нужно найти первую ошибку, а не последнюю, понять, чей это код — ядра, плагина или Java, — и сверить с типичными случаями ниже.

Команда DGuard4 мин

Коротко: откройте logs/latest.log и найдите первую строку с ERROR или Exception — остальное обычно её последствия. Если сервер завис и его остановил watchdog, причина — в дампе потоков рядом с сообщением о зависании. Если упала сама Java, ищите файл hs_err_pid<номер>.log в папке, из которой запущен сервер.

Где лежат логи

ЧтоГдеКогда смотреть
Лог текущего запускаlogs/latest.logВсегда в первую очередь: старт, ошибки плагинов, зависания
Логи прошлых запусковlogs/<дата>-<номер>.log.gzЕсли сервер уже перезапустили и latest.log перезаписан
Краш-репортыcrash-reports/Сервер упал с исключением и сам записал отчёт
Падение самой Javahs_err_pid<номер>.log в рабочей папкеПроцесс исчез без отчёта Minecraft
События сервисаjournalctl -u minecraft (systemd), docker compose logs (Docker)Сервер не стартует или его убила система

Документация Paper советует начинать любую диагностику с latest.log: многие проблемы видны прямо в нём. Если процесс убила система из-за нехватки памяти, в логе Minecraft будет просто обрыв — ищите сообщение OOM killer в журнале системы.

Как читать ошибку

  1. 1

    Найдите первую ошибку

    Ошибки идут цепочкой: одна вызывает другие. Читайте лог сверху вниз от момента, когда что-то пошло не так.

  2. 2

    Прочитайте заголовок исключения

    Строка вида java.lang.NullPointerException: ... или Caused by: ... говорит, что случилось. Последняя строка Caused by обычно ближе всего к первопричине.

  3. 3

    Найдите, чей это код

    В стеке вызовов ищите имена пакетов: com.example.myplugin — это плагин, net.minecraft и io.papermc — ядро. Если в стеке есть плагин, начинайте с его обновления или временного удаления.

  4. 4

    Проверьте, повторяется ли

    Ошибка при каждом старте — конфликт или версия. Ошибка в определённый момент — механика, ферма или действие игрока.

Типичные ошибки

В логеЧто значитЧто делать
UnsupportedClassVersionError ... class file version 69.0Сборке нужна Java 25, а запущена старее (65 — Java 21)Поставьте нужную Java: 25 для Paper 26.x, 21 для 1.21.x
Failed to bind to port / Address already in useПорт занят: сервер уже запущен или неверный server-ipНайдите второй процесс java; оставьте server-ip пустым
You need to agree to the EULAНе принят EULAeula=true в eula.txt
Could not load 'plugins/...jar' + Unknown dependencyПлагину нужна зависимость, которой нетПоставьте зависимость из описания плагина
Invalid plugin.ymlВ plugins/ положили мод или битый файлСкачайте плагин заново, моды Fabric/Forge на Paper не работают
Ambiguous plugin nameДве версии одного плагинаУдалите старую
java.lang.OutOfMemoryErrorНе хватает кучи JavaСм. сколько памяти нужно и ищите виновника через spark
Can't keep up! Is the server overloaded?Тики не укладываются в 50 мсПрофилируйте spark — см. почему лагает сервер
По документации Paper (Basic troubleshooting, Adding plugins) и спецификации классов Java

Зависание и watchdog

Если тик не заканчивается, сервер считает себя зависшим. На Paper сначала срабатывает раннее предупреждение: через 10 секунд зависания он печатает в лог дамп потоков и повторяет его каждые 5 секунд (раздел watchdog в paper-global.yml). Через 60 секунд (timeout-time в spigot.yml) watchdog останавливает сервер, а при restart-on-crash: true вызывает скрипт из restart-script.

Дамп потоков — главная улика: в стеке основного потока (Server thread) видно, на чём он застрял — на плагине, загрузке чанка или сущности. Если зависания повторяются, снимите профиль /spark profiler start --only-ticks-over 100: spark запишет только тяжёлые тики.

Поиск виновного плагина

  1. 1Обновите ядро и плагины до последних сборок — чаще всего ошибку уже исправили.
  2. 2Если стек указывает на плагин, временно уберите его из plugins/ и проверьте.
  3. 3Если не указывает — уберите половину плагинов, проверьте, затем половину оставшихся. Так виновник находится за несколько перезапусков.
  4. 4Проверяйте на копии сервера, а не на живом: см. резервные копии.

Античит — тоже плагин. DGuard — лучший античит для современного сервера Minecraft — пишет понятные сообщения о лицензии и PacketEvents при старте, а /dguard license показывает состояние лицензии и версию PacketEvents. Частые проблемы установки и их решения собраны на странице установки.

Частые вопросы

Где найти лог сервера Minecraft?

В папке logs рядом с сервером: latest.log — текущий запуск, архивы .log.gz — прошлые. Краш-репорты лежат в папке crash-reports.

Что значит UnsupportedClassVersionError?

Сборка собрана под более новую Java. Class file version 69 — это Java 25, 65 — Java 21. Поставьте Java, которую требует ваша версия Paper.

Почему сервер пишет «Can't keep up»?

Сервер не успевает уложить тик в 50 мс. Найдите причину профайлером spark: обычно это сущности, фермы, генерация чанков или плагин.

Сервер вылетает без ошибки — что делать?

Проверьте журнал системы: процесс мог убить OOM killer из-за нехватки памяти. Если упала сама Java, в рабочей папке будет файл hs_err_pid<номер>.log.

Источники

Все разделы
Оптимизация6 минПрофайлер spark: как найти, что тормозит серверspark — профайлер для серверов Minecraft: он показывает, на что уходит время тика, какой плагин сколько тратит, как ведут себя память и сборщик мусора. В Paper 1.21 и новее он уже встроен. Разбираем команды, флаги и то, как читать отчёт.ЧитатьАдминистрирование4 минКак обновить сервер Minecraft до новой версии без потерьНовая версия Minecraft — это новая сборка ядра, часто новая Java и проверка каждого плагина. Мир при этом переводится в новый формат, и обратно его уже не вернуть: с 26.1 Paper прямо запрещает откат. Поэтому порядок такой: бэкап, проверка на копии, стабильные сборки, и только потом — живой сервер.ЧитатьОптимизация6 минПочему лагает сервер Minecraft и как найти причинуСначала поймите, что лагает: сервер (низкий TPS), сеть (пинг) или компьютер игрока (FPS). Если сервер — измерьте MSPT и снимите профиль spark: он покажет, что съедает 50 мс тика.Читать

Поставьте лучший античит для современного Minecraft

DGuard ловит все 47 видов читов из нашего сравнения — у ближайшего соперника, Intave, 27. Полная защита на любом тарифе, до 30 игроков онлайн — бесплатно.