- 1 1. Pendahuluan
- 2 2. Cara Menampilkan Daftar Layanan dengan systemctl
- 3 3. Operasi Dasar Manajemen Layanan dengan systemctl
- 4 4. Opsi Lanjutan dan Teknik Praktis systemctl
- 5 5. Masalah Umum dan Cara Mengatasinya
- 6 6. Ringkasan
- 7 7. Pertanyaan yang Sering Diajukan (FAQ)
- 7.1 Q1. Apa perbedaan systemctl dan service?
- 7.2 Q2. Apa perbedaan list-units dan list-unit-files?
- 7.3 Q3. Apakah layanan status static bisa dijalankan?
- 7.4 Q4. Layanan masked tidak bisa dijalankan. Bagaimana solusinya?
- 7.5 Q5. Apakah ada cara GUI untuk melihat daftar layanan?
- 7.6 Q6. Di mana menempatkan custom unit file?
1. Pendahuluan
Ketika menggunakan Linux, seringkali Anda ingin “memeriksa status layanan” atau “melihat daftar proses yang sedang berjalan”. Dalam situasi seperti itu, perintah systemctl
sangat berguna.
Perintah ini mendukung “systemd”, yaitu sistem inisialisasi dan manajer layanan di Linux. Dengan systemctl
, Anda dapat memeriksa status layanan (unit), memulai, menghentikan, me-restart, dan juga menampilkan daftar layanan—fiturnya sangat luas.
Khususnya jika Anda mencari “daftar systemctl”, Anda bisa mendapatkan gambaran menyeluruh tentang sistem: tidak hanya layanan yang aktif saat ini, tapi juga layanan yang dinonaktifkan, serta layanan yang disetel untuk autostart.
Pada bab ini, kita akan menjelaskan secara ringkas apa itu “systemctl” serta apa saja yang akan dipelajari dalam artikel ini.
Apa itu systemctl?
systemctl
adalah alat standar untuk mengontrol dan memeriksa berbagai “unit” pada distribusi Linux berbasis systemd, seperti layanan, target, dan mount point.
Misalnya, untuk memulai/menghentikan layanan seperti Apache (httpd) atau SSH, serta menampilkan status atau daftar layanan tersebut.
Hubungan antara systemd dan systemctl
systemd adalah inti manajemen startup dan layanan di Linux, menggantikan sistem lama seperti “SysVinit” dan “Upstart”. systemctl
adalah alat baris perintah untuk berinteraksi dengan systemd.
Jika diibaratkan, systemd adalah “pusat kendali” sedangkan systemctl adalah “operator” yang menjalankan perintah.
Apa yang Akan Anda Pelajari di Artikel Ini
Artikel ini akan menjawab pertanyaan-pertanyaan seperti berikut:
- Bagaimana cara melihat daftar layanan yang sedang berjalan?
- Bagaimana cara menampilkan semua layanan termasuk yang tidak aktif?
- Bagaimana memeriksa apakah suatu layanan diatur untuk autostart?
- Bagaimana cara membaca hasil daftar layanan?
Penjelasan disertai contoh perintah dan output agar mudah dipahami, bahkan untuk pemula Linux. Silakan baca sampai akhir!
2. Cara Menampilkan Daftar Layanan dengan systemctl
Dalam manajemen sistem Linux, penting untuk mengetahui daftar layanan secara cepat. Dengan perintah systemctl
, Anda bisa dengan mudah memeriksa layanan aktif, tidak aktif, dan status autostart.
Di bagian ini, akan dijelaskan tiga metode utama untuk menampilkan daftar layanan:
- Daftar layanan yang aktif
- Daftar semua layanan (termasuk yang tidak aktif)
- Daftar file unit layanan (termasuk pengaturan startup)
2.1 Menampilkan Daftar Layanan yang Aktif Saat Ini
Untuk mengecek layanan yang “sedang berjalan” pada sistem Anda, gunakan perintah berikut:
systemctl list-units --type=service
Perintah ini menampilkan daftar layanan yang aktif saat ini. Output mencakup item berikut:
Nama Kolom | Arti |
---|---|
UNIT | Nama layanan (contoh: ssh.service) |
LOAD | Apakah file unit dimuat |
ACTIVE | Status layanan (contoh: active, inactive, failed) |
SUB | Status detail (contoh: running, exited, dead) |
DESCRIPTION | Deskripsi layanan |
Dengan informasi ini, Anda dapat mengetahui apakah nginx sedang berjalan atau layanan apa saja yang aktif saat ini.
2.2 Menampilkan Semua Layanan Termasuk yang Tidak Aktif
Secara default, list-units
hanya menampilkan layanan yang aktif saat ini. Untuk menampilkan semua layanan, tambahkan opsi --all
:
systemctl list-units --type=service --all
Opsi ini akan menampilkan juga layanan dengan status “inactive” atau layanan yang belum pernah dijalankan.
Untuk filter lebih spesifik, gunakan opsi --state=
untuk menampilkan status tertentu saja.
systemctl list-units --type=service --state=inactive
Dengan ini, Anda bisa melihat hanya layanan yang sedang berhenti.
2.3 Menampilkan Daftar File Unit Layanan
Untuk mengetahui layanan mana saja yang diaktifkan untuk autostart saat boot, gunakan perintah berikut:
systemctl list-unit-files --type=service
Perintah ini menampilkan daftar file unit layanan beserta status enabled/disabled-nya.
Nilai STATE | Arti |
---|---|
enabled | Diaktifkan otomatis saat boot |
disabled | Tidak diaktifkan otomatis, harus dijalankan manual |
static | Bergantung pada unit lain, tidak bisa di-enable/disable secara mandiri |
masked | Dinonaktifkan secara eksplisit, tidak dapat dijalankan (dilindungi) |
Daftar ini membantu Anda memahami layanan mana saja yang akan berjalan saat boot, atau jika ada layanan yang termask secara tidak sengaja.
3. Operasi Dasar Manajemen Layanan dengan systemctl
Perintah systemctl
tidak hanya untuk memeriksa status layanan, tapi juga untuk memulai, menghentikan, me-restart, dan mengatur autostart. Berikut operasi dasar yang sering digunakan dalam pengelolaan sistem Linux.
Menguasai operasi ini penting untuk manajemen server sehari-hari maupun troubleshooting.
3.1 Memulai Layanan
Untuk memulai layanan secara manual, gunakan subperintah start
seperti berikut:
sudo systemctl start nama-layanan
Contoh untuk memulai Apache (httpd):
sudo systemctl start httpd.service
Perintah ini langsung menjalankan layanan. Jika ingin layanan tetap berjalan setelah reboot, gunakan juga enable
(dijelaskan di bawah).
3.2 Menghentikan Layanan
Untuk menghentikan layanan, gunakan perintah berikut:
sudo systemctl stop nama-layanan
Contoh:
sudo systemctl stop sshd.service
Layanan yang dihentikan tidak akan berjalan sampai Anda menjalankan start
lagi.
3.3 Me-restart Layanan
Untuk me-restart layanan (misal setelah konfigurasi berubah):
sudo systemctl restart nama-layanan
Contoh:
sudo systemctl restart nginx.service
Perintah ini akan menghentikan lalu langsung menjalankan ulang layanan, apapun status sebelumnya.
3.4 Memeriksa Status Layanan
Untuk melihat status detail suatu layanan, gunakan subperintah status
:
systemctl status nama-layanan
Contoh:
systemctl status mysql.service
Perintah ini menampilkan status aktif, PID, ringkasan log—sangat membantu untuk troubleshooting.
3.5 Mengaktifkan Autostart Layanan
Untuk mengatur agar layanan otomatis berjalan saat boot:
sudo systemctl enable nama-layanan
Contoh:
sudo systemctl enable docker.service
Dengan pengaturan ini, layanan akan berjalan otomatis setiap kali sistem dinyalakan.
3.6 Menonaktifkan Autostart Layanan
Untuk menonaktifkan autostart:
sudo systemctl disable nama-layanan
Contoh:
sudo systemctl disable cups.service
Setelah ini, layanan tidak akan otomatis berjalan saat boot.
3.7 Memeriksa Status Autostart
Untuk memeriksa apakah layanan sudah di-enable atau belum:
systemctl is-enabled nama-layanan
Contoh output:
enabled
Dengan hasil ini, Anda dapat langsung mengetahui pengaturan autostart layanan.
4. Opsi Lanjutan dan Teknik Praktis systemctl
Perintah systemctl
tidak hanya menyediakan operasi dasar, tetapi juga fitur-fitur lanjutan untuk pengelolaan layanan Linux secara efisien. Berikut beberapa teknik praktis dan opsi yang berguna.
Dengan teknik-teknik ini, manajemen layanan di Linux menjadi lebih efektif.
4.1 Menampilkan Dependensi Layanan
Di Linux, sebuah layanan seringkali bergantung pada unit lain (layanan, mount, target, dll). Untuk melihat dependensi, gunakan perintah berikut:
systemctl list-dependencies nama-layanan
Contoh:
systemctl list-dependencies nginx.service
Perintah ini menampilkan unit terkait dalam struktur hierarki, berguna untuk analisis urutan startup atau dampak dependensi.
4.2 Menampilkan Isi File Unit
Untuk memeriksa konfigurasi detail sebuah layanan, Anda bisa melihat isi file unit (.service
):
systemctl cat nama-layanan
Contoh:
systemctl cat ssh.service
Perintah ini menampilkan path dan isi file unit yang sedang digunakan. Berguna untuk mengecek kustomisasi dan pengaturan saat ini.

4.3 Me-reload File Unit
Setelah mengedit file unit, jalankan daemon-reload
untuk memperbarui systemctl:
sudo systemctl daemon-reexec
Atau biasanya:
sudo systemctl daemon-reload
Ini memuat ulang file unit sehingga perubahan dapat diterapkan. Jika perubahan konfigurasi belum terasa, coba perintah ini.
4.4 Melihat Log Eksekusi Unit (Tambahan)
Untuk memeriksa log layanan terkait, gunakan journalctl
:
journalctl -u nama-layanan
Contoh:
journalctl -u docker.service
Perintah ini membantu menelusuri error atau riwayat restart layanan, sangat penting untuk troubleshooting.
5. Masalah Umum dan Cara Mengatasinya
Ketika mengelola layanan dengan systemctl
, terkadang Anda menemui error atau layanan tidak berjalan sesuai harapan. Pada bab ini, akan dijelaskan masalah-masalah umum dan cara penanganannya.
Dengan memahami poin-poin berikut, Anda bisa mengatasi masalah seperti “layanan tidak bisa dijalankan” atau “tidak tahu penyebab error” tanpa panik.
5.1 Poin Pemeriksaan Ketika Layanan Tidak Berjalan
Saat mencoba menjalankan layanan, kadang muncul error seperti:
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
Dalam kasus seperti ini, lakukan pemeriksaan berikut secara berurutan untuk memudahkan identifikasi penyebab:
- Periksa status layanan
systemctl status nama-layanan
- Cek error log
journalctl -xe
- Reload file unit
Jika baru saja mengedit file unit, jalankan berikut untuk me-reload:
sudo systemctl daemon-reload
- Periksa konflik port
Gunakan perintah berikut untuk melihat apakah port digunakan oleh proses lain:
sudo netstat -tulnp | grep nomor-port
5.2 Cara Membaca Error di Perintah status
Ketika menjalankan systemctl status
, tidak hanya status layanan yang ditampilkan, tetapi juga pesan log terakhir. Contohnya:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since Fri 2025-04-18 12:00:00 JST; 5s ago
Process: 12345 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Dengan melihat “Active: failed” atau “status=1/FAILURE”, Anda bisa segera mengetahui layanan gagal berjalan dan proses mana yang error.
Dari baris Loaded
juga dapat diketahui lokasi file unit yang digunakan.
5.3 Jika Layanan Sering Berhenti Sendiri
Jika layanan berjalan sebentar lalu mati, kemungkinan penyebabnya:
- Kesalahan konfigurasi
- Konflik port
- File atau direktori penting hilang
- Kekurangan hak akses
Solusi yang dapat dilakukan:
- Periksa konfigurasi dengan
nginx -t
atauapachectl configtest
- Telusuri log detail dengan
journalctl -u nama-layanan
- Pastikan direktori yang dibutuhkan (misal
/var/run/xxx
) ada, buat jika perlu
5.4 Tidak Bisa Memulai Layanan Berstatus masked
Jika muncul error saat menjalankan systemctl start
seperti:
Failed to start example.service: Unit example.service is masked.
Ini berarti layanan berstatus masked
(benar-benar dinonaktifkan). Untuk mengaktifkan kembali, gunakan:
sudo systemctl unmask nama-layanan
Setelah itu, layanan bisa dijalankan dengan start
.
6. Ringkasan
Manajemen layanan di Linux adalah bagian penting dalam pengelolaan sistem harian. systemctl
merupakan alat utama yang memungkinkan Anda memantau dan mengelola status layanan melalui “daftar layanan” maupun operasi lainnya.
Pada artikel ini, dengan kata kunci “daftar systemctl”, poin-poin berikut telah dijelaskan secara detail:
Apa Saja yang Bisa Dilakukan dengan systemctl (Review)
- Memeriksa daftar layanan
- Menampilkan layanan aktif (
list-units --type=service
) - Menampilkan semua layanan dengan opsi
--all
atau--state=
- Daftar file unit layanan dan pengaturan startup (
list-unit-files
) - Operasi dasar layanan
- Memulai, menghentikan, restart, memeriksa status (start/stop/restart/status)
- Pengaturan autostart (enable/disable/is-enabled)
- Teknik lanjutan dan troubleshooting
- Memeriksa dependensi, menampilkan file unit, me-reload pengaturan
- Analisis log dan status saat error
Best Practice dalam Manajemen Layanan
- Selalu cek status sebelum melakukan operasi (
status
) - Pastikan autostart sudah diatur dengan
is-enabled
- Setelah mengubah pengaturan, selalu jalankan
daemon-reload
- Saat troubleshooting, cek log dengan
journalctl
Dengan rutin melakukan pengecekan seperti ini, Anda dapat meningkatkan stabilitas layanan dan kecepatan penanganan masalah di Linux.
Untuk Belajar Lebih Lanjut
Jika Anda ingin memperdalam pengetahuan, silakan pelajari topik berikut:
- Target systemd (perbedaan dengan runlevel)
- Penjadwalan otomatis dengan
systemd-timer
- Cara membuat dan menempatkan custom unit file
7. Pertanyaan yang Sering Diajukan (FAQ)
Bagian ini merangkum pertanyaan umum terkait systemctl
dan daftar layanan. Cocok sebagai referensi bagi yang sudah terbiasa dengan operasi dasar.
Q1. Apa perbedaan systemctl
dan service
?
A1.systemctl
adalah perintah untuk manajemen layanan pada sistem berbasis systemd (umum di Ubuntu, CentOS, Fedora modern).
Sedangkan service
digunakan pada sistem lama berbasis SysVinit. Di lingkungan systemd, disarankan menggunakan systemctl
.
Q2. Apa perbedaan list-units
dan list-unit-files
?
A2.
list-units
menampilkan unit yang sedang dimuat (sedang berjalan atau pernah dijalankan).list-unit-files
menampilkan semua file unit beserta status enabled/disabled-nya.
Dengan kata lain, satu menampilkan “apa yang sedang berjalan”, yang lain menampilkan “pengaturan startup”.
Q3. Apakah layanan status static bisa dijalankan?
A3.
Ya, layanan berstatus static
bisa dijalankan manual dengan start
, tapi tidak bisa di-enable untuk autostart.
Karena layanan static dijalankan sebagai dependensi dari unit lain.
Q4. Layanan masked tidak bisa dijalankan. Bagaimana solusinya?
A4.
Status masked
artinya layanan dinonaktifkan sepenuhnya dan tidak bisa dijalankan. Untuk mengaktifkan kembali:
sudo systemctl unmask nama-layanan
Setelah itu, layanan bisa dijalankan dengan start
.
Q5. Apakah ada cara GUI untuk melihat daftar layanan?
A5.
Tergantung distribusi Linux, ada alat GUI seperti gnome-system-monitor
, KSysGuard
, atau Cockpit
untuk memeriksa status layanan.
Namun untuk pengelolaan lanjutan, systemctl
tetap direkomendasikan.
Q6. Di mana menempatkan custom unit file?
A6.
Secara umum diletakkan di /etc/systemd/system/
. Setelah mengedit, jalankan:
sudo systemctl daemon-reload
Setelah itu bisa dikelola dengan start
atau enable
seperti biasa.