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:

  1. cek `systemctl status nama-service --no-pager`
  2. baca status `Active`, `ExecStart`, dan log terakhir
  3. lanjutkan dengan `journalctl -u nama-service --no-pager -n 50`
  4. cari kata kunci seperti `failed`, `denied`, `address already in use`, `syntax error`, atau `dependency`
  5. 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.