Belajar AlmaLinux - Systemd, Services & Journald
Episode 7 of 23

Belajar AlmaLinux - Systemd, Services & Journald

Menguasai systemd sebagai service manager AlmaLinux: siklus hidup unit, target boot, membuat unit service dengan override, kontrol resource memakai cgroups v2, serta membaca dan memfilter log sistem lewat journalctl secara efektif.

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

Pendahuluan

Di episode 6 sebelumnya kita mengatur user, permission, dan sudo — identitas siapa yang boleh mengakses sistem. Sekarang kita beralih ke apa yang dijalankan sistem: service dan proses. Hampir semua layanan di AlmaLinux — SSH, firewall, Cockpit, database — dikelola oleh systemd, init system sekaligus service manager yang menjadi standar ekosistem RHEL.

Episode ini membedah systemd dari siklus hidup unit hingga target boot, mengajarkan membuat unit service sendiri, mengelola resource dengan cgroups v2, dan menutup dengan journald — sistem log yang menyatukan jejak semua service.

Mengenal Systemd

Systemd adalah PID 1 — proses pertama yang dijalankan kernel saat boot, dan induk dari semua proses lain. Perannya: memulai, mengawasi, dan menghentikan service; mengelola mount, timer, dan target; serta mencatat log lewat journald.

Verifikasi PID 1
ps -p 1 -o comm=

Siklus Hidup Unit

Setiap service bisa berada di salah satu dari beberapa status berikut:

PerintahStatus / Aksi
systemctl start <unit>Menjalankan unit
systemctl stop <unit>Menghentikan unit
systemctl restart <unit>Restart (berhenti lalu mulai lagi)
systemctl reload <unit>Baca ulang konfigurasi tanpa berhenti
systemctl enable --now <unit>Aktif dan auto-start saat boot
systemctl status <unit>Status, PID, dan log terbaru
systemctl is-active <unit>Cek aktif/tidak
Kelola service sshd
sudo systemctl enable --now sshd
systemctl status sshd
systemctl is-active sshd

Target Boot

Systemd tidak memakai "runlevel" lama — ia memakai target, yang analog dengan keadaan sistem. Target menentukan set unit yang aktif.

TargetFungsi
multi-user.targetSistem text mode multi-user (default server)
graphical.targetSistem dengan GUI
rescue.targetMode pemulihan single-user
emergency.targetShell darurat minimal
Cek dan ubah default target
systemctl get-default
sudo systemctl set-default multi-user.target

Membuat Unit Service Sendiri

Saat kalian menjalankan aplikasi custom sebagai daemon, buat unit service untuknya. Unit disimpan di /etc/systemd/system/. Berikut contoh untuk aplikasi web sederhana:

/etc/systemd/system/myapp.service
[Unit]
Description=My Custom Application
After=network-online.target
Wants=network-online.target
 
[Service]
User=devops
Group=devops
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/bin/myapp
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target
Muat dan aktifkan unit baru
sudo systemctl daemon-reload
sudo systemctl enable --now myapp

Override Tanpa Mengubah File Asli

Jangan pernah mengedit unit file bawaan package langsung — update package akan menimpa perubahan kalian. Gunakan override:

Buat override untuk unit
sudo systemctl edit myapp
Contoh override.conf
[Service]
Environment="PORT=8080"
Restart=always

Resource Control dengan Cgroups v2

Systemd mengelola resource proses lewat cgroups (control groups). Ini memungkinkan kalian membatasi CPU, memori, dan I/O sebuah service — seperti batas anggaran per departemen.

Override dengan batas resource
[Service]
MemoryMax=512M
CPUQuota=50%
MemoryHigh=384M
  • MemoryMax — batas keras memori; proses yang melewatinya bisa di-kill.
  • MemoryHigh — batas lunak; throttling terjadi sebelum batas keras.
  • CPUQuota=50% — membatasi penggunaan maksimal setengah dari satu core.
Terapkan dan cek batas resource
sudo systemctl daemon-reload
sudo systemctl restart myapp
systemctl status myapp

Journald: Log Terpusat

journald adalah daemon logging systemd. Ia mengumpulkan log dari kernel dan semua service ke satu database terstruktur di /var/log/journal/.

Perintah Dasar journalctl

Lihat log boot terakhir
journalctl -b
Filter log per service
journalctl -u sshd --since "1 hour ago"
Ikuti log secara real-time
journalctl -f -u myapp

-b membatasi ke boot saat ini, -u memfilter per unit, --since mengambil rentang waktu, dan -f mengikuti log seperti tail -f. Kombinasi paling sering dipakai: journalctl -u <service> --since "30 min ago" untuk debugging.

Mencari Kesalahan

Cari error di log
journalctl -p err -b

Info

journald menyimpan log dalam format binary yang dirotasi otomatis. Log lama bisa dipertahankan dengan mengatur SystemMaxUse di /etc/systemd/journald.conf. Interaksi journald dengan rsyslog dan logrotate akan kita bahas di episode 12.

Kesalahan Umum (Common Pitfalls)

  1. Mengedit unit file package secara langsung. Gunakan systemctl edit untuk override agar tidak tertimpa saat update.
  2. Lupa daemon-reload setelah mengubah unit file. Systemd tidak membaca perubahan sampai reload.
  3. Menjalankan service sebagai root. Unit service sebaiknya berjalan sebagai user khusus dengan privilege minimal.
  4. Mengandalkan Restart=always tanpa batas. Loop restart cepat bisa memakan resource — pasang RestartSec dan pertimbangkan on-failure.
  5. Membaca log di file lama. Di AlmaLinux modern, log utama ada di journald — journalctl -u lebih cepat daripada memilah /var/log/messages.

Penutup

Pada episode 7 ini kalian telah menguasai systemd dan journald: siklus hidup unit dengan systemctl, target boot, pembuatan unit service dengan override, kontrol resource memakai cgroups v2, dan pencarian log yang efektif dengan journalctl.

Inti yang harus dibawa pulang:

  • Systemd adalah PID 1 dan pengelola semua service di AlmaLinux.
  • Kuasai systemctl start/stop/restart/status dan enable --now.
  • Target boot utama: multi-user.target untuk server, graphical.target untuk desktop.
  • Buat unit di /etc/systemd/system/ dan pakai systemctl edit untuk override.
  • Batasi resource lewat MemoryMax dan CPUQuota di cgroups v2.
  • Baca log dengan journalctl -u <service> --since dan journalctl -p err -b.

Service yang sehat adalah kunci sistem yang stabil. Di episode 8 selanjutnya, kita akan membahas Storage, LVM & Filesystems — dari lsblk, parted, mkfs, dan /etc/fstab, hingga manajemen LVM dengan lvextend dan snapshot, plus Btrfs dan Stratis sebagai opsi storage modern. Sampai jumpa!

Belajar AlmaLinux - Systemd, Services & Journald | Belajar AlmaLinux