Linux : Cara Membaca Penyebab Service Gagal Start dengan systemctl status dan journalctl
Linux: Cara Membaca Penyebab Service Gagal Start dengan systemctl status dan journalctl
π Tujuan Artikel ini membantu siswa TKJ memahami cara membaca penyebab service Linux gagal start, bukan sekadar menebak-nebak. Fokus utamanya adalah memakai `systemctl status` dan `journalctl` untuk menemukan petunjuk error yang benar.
π― Hasil akhir Setelah mengikuti artikel ini, pembaca bisa:
- membedakan status service yang normal dan yang bermasalah
- memakai `systemctl status` untuk melihat ringkasan error
- memakai `journalctl` untuk membaca log service yang lebih detail
- menyusun langkah analisis awal sebelum melakukan perubahan konfigurasi
π§° Prasyarat
Sebelum mulai, siapkan hal berikut:
- sistem Linux yang memakai `systemd` seperti Debian atau Ubuntu
- akses terminal
- izin untuk menjalankan `sudo` atau akses root bila ingin membaca log service secara penuh
- nama service yang ingin diperiksa, misalnya `ssh`, `apache2`, atau `nginx`
π§ Penjelasan Singkat
Di dunia nyata, service bisa gagal start karena banyak sebab: file konfigurasi salah, port bentrok, dependency belum aktif, permission keliru, atau service crash saat dijalankan. Kesalahan pemula yang paling sering terjadi adalah langsung mencoba `restart` berulang-ulang tanpa membaca penyebabnya.
Di Linux berbasis `systemd`, dua alat paling penting untuk membaca masalah awal adalah:
- `systemctl status` β untuk ringkasan kondisi service saat ini
- `journalctl` β untuk membaca log yang lebih detail
Kalau dua command ini dibaca dengan benar, kita biasanya sudah bisa mempersempit akar masalah tanpa asal ubah konfigurasi.
π Langkah 1 - Cek status service terlebih dahulu
Mulailah dari status service yang ingin diperiksa.
```bash systemctl status nama-service --no-pager ```
Contoh:
```bash systemctl status ssh --no-pager systemctl status apache2 --no-pager ```
π‘ Catatan: Bagian ini memberi gambaran cepat tentang:
- apakah service `active`, `failed`, atau `inactive`
- apakah proses start terakhir sukses atau gagal
- beberapa baris log terbaru yang langsung terkait dengan service tersebut
Jika service gagal start, biasanya di sini sudah muncul petunjuk awal seperti:
- konfigurasi error
- port sudah dipakai proses lain
- dependency belum siap
- proses exit dengan status gagal
π Langkah 2 - Baca bagian penting dari output systemctl status
Saat melihat hasil `systemctl status`, fokuskan perhatian ke bagian berikut:
- Loaded β memastikan unit service memang ada dan terbaca sistem
- Active β menunjukkan kondisi service saat ini
- Process / ExecStart β menampilkan proses start terakhir dan statusnya
- baris log terakhir β sering berisi pesan error yang paling relevan
Contoh interpretasi singkat:
- `Active: active (running)` β service sedang berjalan normal
- `Active: failed` β service gagal start atau berhenti karena error
- `status=1/FAILURE` β proses keluar dengan kegagalan
β οΈ Perhatian: `systemctl status` sangat berguna untuk ringkasan, tetapi kadang belum cukup. Kalau pesan error masih terlalu singkat, lanjutkan ke `journalctl`.
π Langkah 3 - Baca log detail dengan journalctl
Untuk melihat log service yang lebih lengkap, gunakan:
```bash journalctl -u nama-service --no-pager -n 50 ```
Contoh:
```bash journalctl -u ssh --no-pager -n 50 journalctl -u apache2 --no-pager -n 50 ```
Kalau ingin fokus ke kejadian terbaru saja, bisa tambahkan waktu:
```bash journalctl -u nama-service --since "10 minutes ago" --no-pager ```
Contoh:
```bash journalctl -u apache2 --since "10 minutes ago" --no-pager ```
β Hasil yang diharapkan: Dari log ini, Anda bisa menemukan petunjuk yang lebih jelas, misalnya:
- file konfigurasi mana yang error
- port berapa yang bentrok
- dependency apa yang belum aktif
- apakah ada permission denied
- apakah service sebenarnya berjalan normal lalu berhenti lagi
β Verifikasi Hasil
Setelah membaca status dan log, lakukan verifikasi sederhana berikut:
```bash systemctl status ssh --no-pager journalctl -u ssh --no-pager -n 20 systemctl status apache2 --no-pager journalctl -u apache2 --no-pager -n 20 ```
Jika berjalan baik, Anda biasanya akan melihat:
- `Active: active (running)` pada service yang sehat
- log yang menunjukkan service berhasil start
- informasi waktu start, process utama, dan event penting lain yang konsisten
Pada verifikasi di lab artikel, command di atas berhasil dijalankan pada service `ssh` dan `apache2`. Output menunjukkan kedua service aktif, lalu `journalctl` menampilkan jejak start dan aktivitas login/service secara nyata.
π Contoh cara berpikir saat service gagal
Misalnya sebuah service web gagal start. Jangan langsung edit file secara acak. Pakai alur berikut:
- cek `systemctl status nama-service --no-pager`
- baca status `Active`, `ExecStart`, dan log terakhir
- lanjutkan dengan `journalctl -u nama-service --no-pager -n 50`
- cari kata kunci seperti `failed`, `denied`, `address already in use`, `syntax error`, atau `dependency`
- baru setelah itu tentukan tindakan perbaikan
Dengan cara ini, Anda tidak bekerja berdasarkan tebakan, tetapi berdasarkan bukti dari sistem.
β Troubleshooting Singkat
Masalah 1: journalctl tidak menampilkan log lengkap
Gejala: Muncul pesan bahwa user biasa tidak bisa melihat semua journal.
Solusi: Gunakan `sudo` atau login sebagai root.
```bash sudo journalctl -u ssh --no-pager -n 50 ```
Masalah 2: systemctl status terlalu pendek
Gejala: Output hanya memberi ringkasan singkat dan error belum jelas.
Solusi: Lanjutkan ke `journalctl -u nama-service --no-pager -n 50` atau tambahkan rentang waktu dengan `--since`.
Masalah 3: service terlihat aktif tapi aplikasi tetap bermasalah
Gejala: `Active: active (running)` muncul, tetapi layanan tetap tidak bisa dipakai.
Solusi: Artinya masalah belum tentu di proses service utama. Lanjutkan pemeriksaan ke port, firewall, konfigurasi aplikasi, atau dependency lain.
β Catatan penting
- jangan jadikan `restart` berulang sebagai metode troubleshooting utama
- baca bukti dulu, baru ubah konfigurasi
- jika service penting berada di server produksi, hindari perubahan terburu-buru tanpa backup atau rencana rollback
π Kesimpulan
Untuk membaca penyebab service gagal start di Linux, dua alat paling penting adalah `systemctl status` dan `journalctl`. `systemctl status` memberi gambaran awal yang cepat, sedangkan `journalctl` memberi detail log yang lebih dalam. Kombinasi keduanya membantu admin atau siswa TKJ menemukan arah masalah dengan lebih tenang, rapi, dan berbasis bukti.
π Langkah berikutnya: Setelah memahami dua command ini, Anda bisa lanjut belajar cara membaca port terbuka dengan `ss -tulpn`, cara mengecek dependency service, dan cara membedakan masalah konfigurasi dengan masalah jaringan.