Exit code bukan alasan crash, itu cuma angkat bahu
Angkanya tidak memberi tahu apa-apa. Baris di atasnya memberi tahu segalanya, dan itu sudah ada di folder log Anda.
Server Java yang mati akan mencetak Exit Code 1 lalu berhenti. Itu seluruh pesannya. Exit code 1 berarti "proses berakhir secara abnormal" — itu kategori, bukan penyebab, dan mencakup segala hal mulai dari folder world yang hilang hingga mod yang error saat class loading.
Di mana jawaban sebenarnya berada
Exit code adalah baris terakhir dari logs/latest.log. Penyebabnya ada di baris-baris sebelumnya. Bacalah mundur dari akhir sampai Anda menemukan Exception, Caused by:, atau Failed to yang pertama. Baris itu menyebutkan class, mod, atau file yang bermasalah.
[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 di sini adalah dependensi yang hilang, bukan world yang rusak. Exit code tidak memberi tahu satu pun dari itu.
Exit code yang benar-benar akan Anda lihat
| Kode | Arti biasanya |
|---|---|
| 0 | Shutdown bersih — /stop atau restart terjadwal |
| 1 | Exception yang tidak tertangani, atau JVM menolak untuk start |
| 137 | Dibunuh oleh OS, hampir selalu oleh OOM killer |
| 143 | SIGTERM — container orchestrator menghentikannya |
Kode 137 adalah yang sering disalahartikan sebagai crash. JVM tidak gagal; sesuatu di luarnya memutuskan bahwa proses tersebut menggunakan terlalu banyak memori.
Java dan Bedrock bukan masalah yang sama
Server Bedrock menulis bedrock_server.log dan sama sekali tidak mengeluarkan exit code bergaya Java — ia membuang laporan crash handler dengan stack trace dan baris Crash report. Saran yang ditulis untuk log Java tidak akan cocok untuk itu.
Stack yang dimodifikasi gagal dengan cara berbeda
Dengan mod, exception pertama sering kali hanya gejala. Mixin yang gagal diterapkan menghasilkan kaskade di mana biang kerok sebenarnya adalah baris Mixin apply failed pertama, bukan NoSuchMethodError tiga puluh baris kemudian. Cari Mixin di log sebelum Anda mencari Exception.
Memeriksa apakah server hidup
Log memberi tahu Anda mengapa server mati. Log tidak memberi tahu apakah server hidup sekarang. Pemeriksaan TCP ke port server menjawabnya dalam satu permintaan, dan cara kerjanya sama untuk Java dan Bedrock karena keduanya berbicara melalui socket.
Tempelkan log ke alat Server Diagnostics untuk menarik keluar baris yang bermasalah, dan arahkan ke host Anda untuk memastikan server benar-benar merespons.