Setelah memahami proses dan cara mengelolanya, kini kita akan mengenal systemd, sistem yang menjadi fondasi pengelolaan layanan di Ubuntu 26.04 LTS dan Fedora Workstation 44. systemd bertugas memulai sistem saat boot, mengelola service yang berjalan di latar belakang, serta menyimpan log sistem. Bagi seorang Sysadmin, kemampuan mengontrol service lewat systemctl dan membaca log lewat journalctl adalah salah satu skill yang paling sering dipakai sehari-hari, mulai dari memastikan web server tetap berjalan sampai menelusuri penyebab sebuah aplikasi tiba-tiba berhenti. Menguasai systemd berarti kita mampu mengontrol service, mengatur service supaya aktif saat boot, dan membaca log untuk memecahkan masalah.
30.1 Apa Itu Init System?
Saat komputer dinyalakan, kernel Linux dimuat terlebih dahulu, lalu sebuah program pertama dijalankan untuk memulai seluruh sistem. Program pertama ini disebut init system. Tugasnya adalah mempersiapkan sistem, memulai service-service penting, dan mengelola service selama sistem berjalan. init system adalah proses pertama yang berjalan, sehingga memiliki PID 1.
30.2 Mengenal systemd: Init System Modern
systemd adalah init system modern yang digunakan oleh hampir semua distribusi Linux besar, termasuk Ubuntu 26.04 LTS dan Fedora Workstation 44. systemd tidak hanya memulai service, tetapi juga menangani manajemen log, penjadwalan tugas, manajemen jaringan, dan banyak fungsi lain. systemd bekerja lebih cepat dibandingkan init system pendahulunya karena mampu memulai service secara paralel.
30.3 Unit File: Service, Target, Socket, Timer
systemd mengelola berbagai komponen sistem dalam bentuk unit. Setiap unit direpresentasikan oleh sebuah file konfigurasi, dan ada beberapa jenis unit yang penting untuk diketahui.
| Jenis Unit | Fungsi |
|---|---|
Service (.service) | Mendefinisikan sebuah service atau proses latar belakang. |
Target (.target) | Mengelompokkan unit lain untuk mencapai suatu kondisi sistem. |
Socket (.socket) | Mengelola socket untuk aktivasi service berdasarkan koneksi. |
Timer (.timer) | Menjadwalkan tugas secara berkala, pengganti cron untuk systemd. |
Untuk kebutuhan sehari-hari, unit service dan target adalah dua jenis yang paling sering kita temui. Nama sebuah unit biasanya cukup ditulis tanpa akhiran jenisnya, misalnya ssh alih-alih ssh.service, karena systemctl akan menambahkan akhiran .service secara otomatis jika tidak dituliskan.
30.4 Target Systemd (Pengganti Runlevel)
Pada init system lama, kondisi sistem diwakili oleh konsep runlevel. systemd menggantinya dengan target. Berikut beberapa target utama yang penting dikenal lebih dulu.
| Target | Fungsi |
|---|---|
graphical.target | Sistem dengan antarmuka grafis penuh, target default untuk desktop. |
multi-user.target | Sistem berjalan tanpa antarmuka grafis, cukup untuk keperluan server. |
rescue.target | Mode penyelamatan untuk memperbaiki sistem yang bermasalah. |
Selain tiga target di atas, systemd juga menyediakan emergency.target yang lebih minimal dibanding rescue.target. Target ini hanya memuat root filesystem dalam mode baca saja tanpa mount unit lain, dan biasanya baru dipakai ketika rescue.target sendiri gagal dimuat.
Pada Ubuntu dan Fedora desktop, target default yang aktif adalah graphical.target. Cek target aktif saat ini dengan perintah systemctl get-default.
30.5 Mengelola Service dengan systemctl
systemctl adalah perintah utama untuk mengelola service dan unit systemd.
30.5.1 Menemukan Nama Unit Service
Sebelum mengontrol sebuah service, kita perlu tahu dulu nama unit-nya, karena nama ini tidak selalu sama antar distribusi. Untuk melihat seluruh service yang sedang dikenal oleh systemd, gunakan systemctl list-units.
systemctl list-units --type=serviceTambahkan opsi --all untuk menyertakan service yang tidak aktif, atau salurkan ke grep untuk mencari nama tertentu, misalnya systemctl list-units --type=service --all | grep ssh.
Sebagai contoh sepanjang bagian ini, kita akan menggunakan service SSH server karena merupakan contoh yang umum dan berguna dalam praktik nyata. Perlu diperhatikan, nama unit-nya berbeda antara Ubuntu dan Fedora mengikuti konvensi penamaan masing-masing turunan distro.
| Distro | Nama Unit SSH |
|---|---|
| Ubuntu 26.04 LTS | ssh (ssh.service) |
| Fedora Workstation 44 | sshd (sshd.service) |
Perbedaan ini adalah salah satu contoh mengapa perintah systemctl list-units di atas berguna: alih-alih menghafal nama unit untuk setiap distro, kita bisa langsung memverifikasinya di sistem yang sedang dipakai. Perlu diingat pula bahwa SSH server (paket openssh-server) tidak terinstal secara bawaan di kedua distro, sehingga unit ini baru muncul setelah kita menginstalnya sebagaimana dibahas pada Bab 35. Sebelum sampai ke Bab 35, kita tetap bisa mempraktikkan perintah-perintah berikut dengan mengganti ssh/sshd pada contoh dengan service yang sudah aktif secara bawaan, misalnya cups (layanan pencetakan) atau NetworkManager.
30.5.2 systemctl status: Cek Status Service
Untuk melihat status sebuah service, gunakan systemctl status.
# Ubuntu 26.04 LTS
systemctl status ssh
# Fedora Workstation 44
systemctl status sshdPerintah ini menampilkan apakah service aktif, sejak kapan berjalan, serta beberapa baris log terakhir.
Di lapangan, baris Active: pada output inilah yang paling sering diperiksa lebih dulu. Status active (running) berarti service berjalan normal, inactive (dead) berarti service berhenti tanpa error, dan failed menandakan proses berhenti karena error sehingga perlu ditelusuri lebih lanjut lewat log. Untuk skrip otomatis atau pengecekan cepat tanpa membaca output lengkap, gunakan systemctl is-active ssh dan systemctl is-enabled ssh yang masing-masing hanya mengembalikan status singkat seperti active atau enabled.
30.5.3 systemctl start / stop / restart: Kontrol Service
Kita bisa menjalankan, menghentikan, dan memulai ulang service menggunakan start, stop, dan restart. Perintah ini memerlukan hak administratif.
# Ubuntu 26.04 LTS
sudo systemctl start ssh
sudo systemctl stop ssh
sudo systemctl restart ssh
# Fedora Workstation 44
sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd30.5.4 systemctl enable / disable: Aktif/Nonaktif Saat Boot
start dan stop hanya berlaku untuk sesi berjalan. Untuk mengatur agar service otomatis aktif atau tidak saat boot, gunakan enable dan disable.
# Ubuntu 26.04 LTS
sudo systemctl enable ssh
sudo systemctl disable ssh
# Fedora Workstation 44
sudo systemctl enable sshd
sudo systemctl disable sshdPerbedaan pentingnya adalah enable membuat service aktif secara permanen setelah boot, sedangkan start hanya menjalankannya sekali pada sesi sekarang. Untuk langsung menjalankan sekaligus mengaktifkan service saat boot dalam satu perintah, gunakan opsi --now.
sudo systemctl enable --now ssh30.5.5 systemctl reload: Reload Konfigurasi
Saat file konfigurasi sebuah service berubah dan service tidak perlu dihentikan, gunakan reload.
# Ubuntu 26.04 LTS
sudo systemctl reload ssh
# Fedora Workstation 44
sudo systemctl reload sshdTidak semua service mendukung reload. Jika service tidak mendukungnya, gunakan restart untuk menerapkan perubahan konfigurasi.
Satu tips troubleshooting yang berguna: kalau sebuah service tiba-tiba tidak berjalan padahal seharusnya aktif, jalankan systemctl --failed untuk melihat daftar semua unit yang gagal di seluruh sistem, bukan cuma satu service saja. Cara ini jauh lebih cepat dibanding mengecek status setiap service satu per satu, terutama saat sedang menelusuri penyebab sebuah aplikasi atau server tidak bisa diakses.
30.6 Melihat Log Sistem dengan journalctl
systemd menyimpan log seluruh sistem dalam journal, yang dapat dibaca menggunakan journalctl. Log ini sangat membantu saat mendiagnosis masalah.
30.6.1 journalctl -u: Log Per Service
Untuk melihat log milik sebuah service tertentu, gunakan opsi -u.
# Ubuntu 26.04 LTS
journalctl -u ssh
# Fedora Workstation 44
journalctl -u sshdPerintah ini menampilkan log yang dihasilkan oleh service SSH saja.
30.6.2 journalctl -f: Follow Log Real-Time
Untuk mengikuti log secara langsung seiring masuknya baris baru, gunakan -f, mirip dengan tail -f.
journalctl -fTekan Ctrl+C untuk berhenti mengikuti log.
30.6.3 journalctl -b: Log Sejak Boot Terakhir
Untuk melihat log sejak boot terakhir, gunakan opsi -b.
journalctl -bLog dari boot-boot sebelumnya juga bisa dilihat dengan menambahkan angka, misalnya journalctl -b -1 untuk boot sebelumnya. Opsi ini hanya menampilkan hasil dari boot-boot sebelumnya jika penyimpanan log persisten aktif, yang secara bawaan sudah aktif di Ubuntu 26.04 LTS maupun Fedora Workstation 44.
30.6.4 Filter Berdasarkan Waktu
Log juga bisa difilter berdasarkan rentang waktu menggunakan opsi --since dan --until.
journalctl --since "2026-08-18 10:00:00" --until "2026-08-18 12:00:00"Selain format tanggal lengkap, --since dan --until juga menerima format waktu relatif yang lebih praktis dipakai sehari-hari, misalnya --since "1 hour ago" atau --since today. Filter waktu sangat berguna untuk mempersempit pencarian ke saat terjadinya suatu masalah, terutama di server yang sudah berjalan lama dengan volume log besar.
systemd adalah jantung pengelolaan sistem di Ubuntu 26.04 LTS dan Fedora Workstation 44. Setelah menguasai systemctl untuk mengontrol service, termasuk cara menemukan nama unit yang benar di setiap distro, serta journalctl untuk membaca log, kita sudah punya dasar yang kuat untuk merawat sistem Linux. Pada bagian berikutnya, kita akan melangkah ke topik jaringan dasar, dimulai dari konsep jaringan dan cara melihat konfigurasinya di Linux.

