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.

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.
Perintah inti untuk mengelola layanan sangat intuitif:
systemctl start httpd
systemctl stop httpd
systemctl restart httpd
systemctl status httpdsystemctl enable httpd
systemctl disable httpdPenting memahami perbedaan start vs enable: start menjalankan layanan sekarang, enable membuatnya otomatis berjalan saat boot. Praktik yang benar biasanya menggabungkan keduanya:
systemctl enable --now httpdUntuk melihat kondisi sistem secara keseluruhan:
systemctl is-system-runningsystemctl list-units --type=service --state=runningOutput systemctl is-system-running memberi gambaran cepat: running berarti semua berjalan normal, degraded menandakan ada unit yang gagal — dan kandidat pertama untuk investigasi.
Systemd menggantikan runlevel tradisional dengan targets — kumpulan unit yang merepresentasikan keadaan sistem tertentu. Alih-alih "runlevel 3", kalian menemui multi-user.target.
| Target | Fungsi |
|---|---|
multi-user.target | Sistem penuh tanpa GUI (default server) |
graphical.target | Sistem dengan GUI |
rescue.target | Mode perbaikan, layanan inti saja |
emergency.target | Shell minimal untuk pemulihan darurat |
systemctl get-defaultsystemctl set-default multi-user.targetServer Rocky Linux secara default boot ke multi-user.target. Target seperti rescue dan emergency akan sangat berguna saat troubleshooting boot di episode 10.
Unit file .service mendefinisikan bagaimana systemd menjalankan sebuah layanan. Kalian bisa menempatkannya di /etc/systemd/system/ untuk 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
EOFsystemctl daemon-reload
systemctl enable --now myappBagian 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.Daripada mengubah unit file dari paket vendor (yang akan tertimpa saat update), systemd menyediakan mekanisme override yang bersih:
systemctl edit httpdmkdir -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 httpdOverride yang ditempatkan di /etc/systemd/system/ mengalahkan unit default dari /usr/lib/systemd/system/ tanpa menyentuh file asli — perubahan kalian aman dari update paket.
Journald mengumpulkan log semua layanan secara terpusat, dan journalctl adalah pintu masuknya:
journalctl -u httpdjournalctl -b -p errjournalctl -u httpd --since "2026-08-03 08:00" --until "2026-08-03 10:00"journalctl -u httpd -fKombinasi -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.
Jika sebuah layanan tidak mau jalan, alur debugging yang terstruktur menghemat waktu:
systemctl status myapp
systemctl status myapp --no-pagerjournalctl -u myapp --no-pager -n 50Periksa 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.
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.multi-user, graphical, rescue, dan emergency./etc/systemd/system/ dengan daemon-reload setelah perubahan.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!