Руководства / Устранение неполадок
Код выхода — не причина краха, а пожатие плечами
Число не говорит вам ничего. Строка над ним говорит всё — и она уже лежит в папке с логами.
Сервер Java, который умирает, печатает Exit Code 1 и останавливается. Это всё сообщение. Код выхода 1 означает «процесс завершился аварийно» — это категория, а не причина, и под неё попадает всё: от отсутствующей папки мира до мода, который падает при загрузке классов.
Где живёт настоящий ответ
Код выхода печатает ваш лаунчер или панель хостинга, а не сама игра. Причина — в logs/latest.log, а при крахе — в отчёте, который сервер сохраняет в crash-reports/. Читайте лог с конца назад, пока не дойдёте до первой строки 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 | Watchdog убил зависший тик, JVM отказалась запускаться, либо лаунчер или загрузчик модов сообщил о крахе |
| 137 | Убит ОС, почти всегда — OOM-killer |
| 143 | SIGTERM — оркестратор контейнеров остановил процесс |
Код 137 — тот, который люди ошибочно принимают за крах. JVM не сломалась; что-то вне её решило, что процесс съел слишком много памяти.
Java и Bedrock — это не одна и та же проблема
Выделенный сервер Bedrock — другая программа с собственным логированием, и советы, написанные для логов Java, на него не переносятся.
Сборки с модами падают иначе
С модами первое исключение часто лишь симптом. Неудачное применение миксина порождает лавину, где настоящий виновник — первая строка Mixin apply failed, а не NoSuchMethodError тридцатью строками позже. Ищите в логе Mixin прежде, чем искать Exception.
Проверка, жив ли сервер
Лог говорит, почему сервер умер. Он не говорит, жив ли он сейчас. Запрос статуса к порту сервера отвечает на это за один запрос. Инструмент здесь проверяет серверы Java; Bedrock общается по UDP и требует собственного запроса.
Вставьте лог в инструмент Диагностика сервера, чтобы вытащить сбойную строку, и укажите в нём свой хост, чтобы убедиться, что сервер действительно отвечает.