Belajar Rocky Linux - Systemd & Manajemen Layanan
Episode 7 of 23

Belajar Rocky Linux - Systemd & Manajemen Layanan

Episode ini mengupas systemd sebagai init system Rocky Linux: manajemen layanan dengan systemctl, konsep targets, pembuatan unit file service, override konfigurasi, serta pembacaan log dengan journalctl.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 6 sebelumnya kalian sudah belajar mengelola siapa yang boleh mengakses sistem. Sekarang giliran memahami siapa yang menjalankan sistem itu sendiri — layanan yang terus berjalan di background, dari SSH hingga web server dan database. Semuanya dikoordinasikan oleh satu entitas: systemd.

Systemd adalah init system yang menjadi proses pertama yang dijalankan kernel saat boot. Dia tidak hanya memulai layanan, tetapi juga mengelola proses, perangkat, mount point, log, timer, dan state sistem. Di Rocky Linux, hampir tidak ada aspek sistem yang lepas dari systemd. Episode ini akan menjadikan kalian nyaman dengan systemctl, unit files, dan journalctl — tiga tool yang akan menemani kalian setiap hari.

Manajemen Layanan dengan Systemctl

Operasi Dasar

Perintah inti untuk mengelola layanan sangat intuitif:

Mengelola layanan
systemctl start httpd
systemctl stop httpd
systemctl restart httpd
systemctl status httpd
Mengatur auto-start
systemctl enable httpd
systemctl disable httpd

Penting memahami perbedaan start vs enable: start menjalankan layanan sekarang, enable membuatnya otomatis berjalan saat boot. Praktik yang benar biasanya menggabungkan keduanya:

Start sekaligus enable
systemctl enable --now httpd

Status dan IsSystemRunning

Untuk melihat kondisi sistem secara keseluruhan:

Status seluruh sistem
systemctl is-system-running
Melihat semua unit aktif
systemctl list-units --type=service --state=running

Output systemctl is-system-running memberi gambaran cepat: running berarti semua berjalan normal, degraded menandakan ada unit yang gagal — dan kandidat pertama untuk investigasi.

Targets

Konsep Target

Systemd menggantikan runlevel tradisional dengan targets — kumpulan unit yang merepresentasikan keadaan sistem tertentu. Alih-alih "runlevel 3", kalian menemui multi-user.target.

TargetFungsi
multi-user.targetSistem penuh tanpa GUI (default server)
graphical.targetSistem dengan GUI
rescue.targetMode perbaikan, layanan inti saja
emergency.targetShell minimal untuk pemulihan darurat
Melihat default target
systemctl get-default
Mengubah default target
systemctl set-default multi-user.target

Server Rocky Linux secara default boot ke multi-user.target. Target seperti rescue dan emergency akan sangat berguna saat troubleshooting boot di episode 10.

Unit Files dan Journald

Anatomi Unit File Service

Unit file .service mendefinisikan bagaimana systemd menjalankan sebuah layanan. Kalian bisa menempatkannya di /etc/systemd/system/ untuk layanan kustom:

Unit file layanan kustom
cat > /etc/systemd/system/myapp.service <<'EOF'
[Unit]
Description=My Application Service
After=network-online.target
 
[Service]
Type=simple
ExecStart=/usr/local/bin/myapp --config /etc/myapp.conf
Restart=on-failure
User=myapp
Environment=APP_ENV=production
 
[Install]
WantedBy=multi-user.target
EOF
Muat ulang dan aktifkan
systemctl daemon-reload
systemctl enable --now myapp

Bagian kunci dari unit file ini:

  • Type=simple — systemd menganggap proses berjalan langsung sebagai layanan.
  • ExecStart — perintah yang dijalankan, wajib menggunakan path absolut.
  • Restart=on-failure — restart otomatis saat proses gagal; kunci ketahanan layanan.
  • User=myapp — layanan berjalan sebagai user non-root, mengikuti prinsip least privilege dari episode 6.
  • Environment — variabel lingkungan yang diteruskan ke proses.

Override Konfigurasi

Daripada mengubah unit file dari paket vendor (yang akan tertimpa saat update), systemd menyediakan mekanisme override yang bersih:

Membuka editor override
systemctl edit httpd
Override manual
mkdir -p /etc/systemd/system/httpd.service.d
echo -e '[Service]\nEnvironment=TZ=Asia/Jakarta' \
  > /etc/systemd/system/httpd.service.d/timezone.conf
systemctl daemon-reload
systemctl restart httpd

Override yang ditempatkan di /etc/systemd/system/ mengalahkan unit default dari /usr/lib/systemd/system/ tanpa menyentuh file asli — perubahan kalian aman dari update paket.

Journalctl untuk Log Terpusat

Journald mengumpulkan log semua layanan secara terpusat, dan journalctl adalah pintu masuknya:

Log satu layanan
journalctl -u httpd
Log sejak boot terakhir
journalctl -b -p err
Log berdasarkan waktu
journalctl -u httpd --since "2026-08-03 08:00" --until "2026-08-03 10:00"
Mengikuti log secara real-time
journalctl -u httpd -f

Kombinasi -b (boot terakhir), -p (prioritas: err, warning, info), dan -u (unit) membuat investigasi masalah menjadi terarah. journalctl -u httpd -f mengikuti log secara langsung — cara terbaik melihat layanan saat masalah terjadi secara real-time.

Info

Ketika sebuah layanan gagal, kebiasaan diagnostik yang baik adalah membaca output systemctl status untuk melihat error awal, lalu journalctl -u <service> -b -p err untuk melihat entri error sejak boot terakhir. Dua perintah ini menyelesaikan sebagian besar masalah layanan.

Troubleshooting Layanan

Jika sebuah layanan tidak mau jalan, alur debugging yang terstruktur menghemat waktu:

Melihat alasan kegagalan
systemctl status myapp
systemctl status myapp --no-pager
Melihat entri log terkait
journalctl -u myapp --no-pager -n 50

Periksa hal-hal ini secara berurutan: apakah unit file valid dan sudah di-reload, apakah ExecStart merujuk path yang benar dan executable, apakah user yang ditentukan memiliki izin, dan apakah dependency target sudah terpenuhi. Sebagian besar kegagalan layanan berasal dari salah satu dari empat titik ini.

Penutup

Di episode 7 ini kalian sudah menguasai manajemen layanan di Rocky Linux: operasi systemctl untuk start, stop, restart, dan enable, konsep targets seperti multi-user dan rescue, pembuatan unit file service dengan Type, ExecStart, Restart, User, dan Environment, override konfigurasi yang aman dari update, serta pembacaan dan filter log dengan journalctl.

Inti yang harus dibawa pulang:

  • start menjalankan layanan sekarang; enable mengatur auto-start; gabungkan dengan enable --now.
  • Targets menggantikan runlevel: multi-user, graphical, rescue, dan emergency.
  • Unit file kustom diletakkan di /etc/systemd/system/ dengan daemon-reload setelah perubahan.
  • Override dengan systemctl edit melindungi perubahan dari update paket vendor.
  • journalctl -u <service> -b -p err adalah jalur cepat investigasi kegagalan layanan.

Di episode 8 selanjutnya kita akan membahas storage, LVM, dan filesystems — manajemen disk dengan lsblk, parted, dan mkfs, mount point dan fstab, Logical Volume Manager dengan PV/VG/LV dan snapshot, serta filesystem modern seperti XFS, Btrfs, dan Stratis. Layanan sudah berjalan; sekarang giliran memastikan datanya tersimpan dengan benar!