Panduan Lengkap systemctl: Cara Menampilkan dan Mengelola Layanan di Linux

目次

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 KolomArti
UNITNama layanan (contoh: ssh.service)
LOADApakah file unit dimuat
ACTIVEStatus layanan (contoh: active, inactive, failed)
SUBStatus detail (contoh: running, exited, dead)
DESCRIPTIONDeskripsi 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 STATEArti
enabledDiaktifkan otomatis saat boot
disabledTidak diaktifkan otomatis, harus dijalankan manual
staticBergantung pada unit lain, tidak bisa di-enable/disable secara mandiri
maskedDinonaktifkan 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:

  1. Periksa status layanan
   systemctl status nama-layanan
  1. Cek error log
   journalctl -xe
  1. Reload file unit
    Jika baru saja mengedit file unit, jalankan berikut untuk me-reload:
   sudo systemctl daemon-reload
  1. 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 atau apachectl 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.