MC Toolkit

Руководства / Устранение неполадок

Код выхода — не причина краха, а пожатие плечами

Число не говорит вам ничего. Строка над ним говорит всё — и она уже лежит в папке с логами.

Java-сервер, который умирает, выводит Exit Code 1 и останавливается. Это всё сообщение. Код выхода 1 означает «процесс завершился аварийно» — это категория, а не причина, и под неё попадает всё: от отсутствующей папки мира до мода, который падает во время загрузки классов.

Где живёт настоящий ответ

Код выхода — это последняя строка logs/latest.log. Причина — в строках перед ней. Читайте с конца назад, пока не дойдёте до первой строки с Exception, Caused by: или Failed to. Именно эта строка называет класс, мод или файл.

[Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoSuchMethodError: net.minecraft.world.level.Level.getBiome
    at com.example.mod.ExampleMixin.inject(ExampleMixin.java:41)
Caused by: java.lang.NoClassDefFoundError: com/example/lib/Helper

NoClassDefFoundError здесь — это отсутствующая зависимость, а не повреждённый мир. Код выхода вам ничего из этого не сказал.

Коды выхода, которые вы действительно увидите

КодОбычное значение
0Чистое завершение — /stop или плановый перезапуск
1Необработанное исключение или JVM отказалась запускаться
137Убит ОС, почти всегда OOM-killer'ом
143SIGTERM — остановлен оркестратором контейнеров

Код 137 — тот, который люди ошибочно принимают за крах. JVM не сломалась; что-то извне решило, что процесс использовал слишком много памяти.

Java и Bedrock — это не одна и та же проблема

Сервер Bedrock пишет bedrock_server.log и вообще не выдаёт код выхода в стиле Java — он сбрасывает отчёт обработчика краха со стеком вызовов и строкой Crash report. Советы, написанные для логов Java, к нему не применимы.

Сборки с модами падают иначе

С модами первое исключение часто является симптомом. Неудачное применение миксина порождает каскад, в котором настоящий виновник — первая строка Mixin apply failed, а не NoSuchMethodError тридцатью строками позже. Ищите в логе Mixin прежде, чем искать Exception.

Проверка, жив ли сервер

Лог говорит вам, почему сервер умер. Он не говорит, жив ли он сейчас. TCP-проверка порта сервера отвечает на это одним запросом, и она одинаково работает для Java и Bedrock, потому что оба общаются через сокет.

Вставьте лог в инструмент Диагностика сервера, чтобы вытащить строку с ошибкой, и укажите ему свой хост, чтобы убедиться, что сервер действительно отвечает.

Server Diagnostics →

Другие руководства

Смотреть все →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.