RDP Monster

systemctl: Semua Cara Menampilkan Daftar Service Linux

systemctl: Semua Cara Menampilkan Daftar Service Linux

Satu perintah yang wajib diketahui: systemctl list-units --type=service

Pada distribusi apa pun yang menjalankan systemd — Ubuntu sejak 15.04, Debian sejak 8, RHEL dan CentOS sejak 7, ditambah Fedora, Arch, dan openSUSE — setiap service adalah sebuah unit systemd, dan systemctl adalah alat untuk menampilkannya:

systemctl list-units --type=service

Secara bawaan perintah ini mencetak setiap unit service yang saat ini ada di memori systemd: service yang aktif, yang punya job dalam antrean, atau yang gagal. Perintah ini tidak menampilkan service yang terpasang tetapi belum pernah dijalankan. Ketika keluarannya lebih panjang dari terminal Anda, systemctl mengalirkannya ke pager (less) — tekan q untuk keluar, atau tambahkan --no-pager untuk mencetak langsung ke stdout.

Setiap baris memiliki lima kolom:

  • UNIT — nama unit, misalnya ssh.service. Ini adalah nama persis yang Anda berikan ke systemctl status, start, dan stop.
  • LOAD — apakah file unit berhasil diurai dengan benar: loaded, not-found, bad-setting, error, atau masked.
  • ACTIVE — status tingkat tinggi: active, inactive, activating, deactivating, atau failed.
  • SUB — status tingkat rendah, spesifik untuk tipe unit: sebuah service bisa running, exited, dead, dan seterusnya.
  • DESCRIPTION — teks yang mudah dibaca manusia dari file unit.

Bacalah pasangan ACTIVE/SUB secara bersamaan: active (running) berarti ada proses yang hidup saat ini, sedangkan active (exited) berarti sebuah service oneshot berjalan dengan sukses lalu selesai — normal untuk tugas persiapan, bukan masalah yang perlu diperbaiki.

Memfilter: berjalan, gagal, atau semuanya

Opsi --state= memfilter berdasarkan nilai LOAD, ACTIVE, atau SUB apa pun dan menerima daftar yang dipisahkan koma:

# Only services with a live process
systemctl list-units --type=service --state=running

# Everything loaded, including stopped and dead services
systemctl list-units --type=service --all

# Only failures
systemctl list-units --type=service --state=failed

# Combine states
systemctl list-units --type=service --state=running,exited

systemctl --failed adalah pintasan bawaan untuk filter failed dan layak dijalankan sebagai refleks di setiap mesin yang Anda masuki. Untuk keluaran yang mudah diproses mesin, --no-legend menghilangkan baris header dan ringkasan, dan --plain menghilangkan karakter bullet, sehingga kolomnya tetap stabil untuk awk atau cut. Untuk mencari berdasarkan nama, alirkan melalui grep: systemctl list-units --type=service --all --no-pager | grep ssh.

Apa yang berjalan saat boot: systemctl list-unit-files

list-units menjawab "apa yang berjalan sekarang?". Untuk menjawab "apa yang akan berjalan saat boot?", tampilkan file unit yang terpasang di disk:

systemctl list-unit-files --type=service
systemctl list-unit-files --type=service --state=enabled

Di sini kolom STATE menggambarkan konfigurasi boot, bukan status runtime:

  • enabled — berjalan otomatis saat boot (atau saat pemicunya, untuk service yang diaktifkan lewat socket/timer).
  • disabled — terpasang, tetapi tidak ada yang menjalankannya otomatis.
  • static — tidak punya bagian [Install]; hanya berjalan sebagai dependensi unit lain dan tidak bisa diaktifkan langsung.
  • masked — di-symlink ke /dev/null; systemd menolak menjalankannya sama sekali.
  • generated — dibuat saat runtime oleh sebuah generator, biasanya dari skrip init lama.

Rilis systemd terbaru juga mencetak kolom preset (VENDOR PRESET atau PRESET tergantung versinya) yang menunjukkan nilai bawaan distribusi. Jebakan yang harus dihindari: enabled tidak berarti berjalan, dan disabled tidak berarti berhenti. Sebuah service bisa disabled tetapi berjalan karena seseorang menjalankannya secara manual, atau enabled tetapi mati karena crash. Jika ini penting, periksa silang kedua daftar tersebut.

Satu service sekaligus: status, is-active, is-enabled

Begitu sebuah service menarik perhatian Anda, perbesar tampilannya:

systemctl status nginx
systemctl is-active nginx    # prints: active | inactive | failed
systemctl is-enabled nginx   # prints: enabled | disabled | static | masked
systemctl is-failed nginx

status menunjukkan gambaran lengkap: status ACTIVE/SUB, PID utama, waktu aktif, penggunaan memori, pohon proses cgroup, dan sepuluh baris jurnal terakhir. Kalau sepuluh baris belum cukup, langsung ke jurnal dengan journalctl -xeu nginx (-u memfilter berdasarkan unit, -e melompat ke akhir, -x menambahkan teks penjelasan).

Perintah is-* dibuat untuk scripting: keduanya mencetak satu kata dan menetapkan kode keluar yang sesuai — is-active keluar dengan 0 hanya jika unit aktif, dan is-enabled keluar dengan nilai bukan nol untuk unit disabled atau masked. Tambahkan --quiet untuk menekan keluaran dan menyisakan kode keluar saja.

Semua perintah penampilan daftar di atas berjalan sebagai pengguna biasa tanpa hak istimewa. Untuk benar-benar mengelola service — start, stop, enable, disable — dibutuhkan root, jadi sebaiknya Anda memahami cara kerja sudo dan pergantian pengguna di Ubuntu sebelum melangkah lebih jauh dari sekadar membaca status. Perhatikan juga bahwa unit tingkat pengguna berada di manager terpisah: systemctl --user list-units --type=service menampilkan service yang berjalan di sesi Anda sendiri, itulah sebabnya beberapa service tampak "hilang" dari daftar sistem.

Lembar contekan: daftar yang benar-benar akan Anda pakai

PerintahApa yang ditampilkan
systemctl list-units --type=serviceService yang aktif dan yang gagal, saat ini di memori
systemctl list-units --type=service --allSetiap service yang dimuat, termasuk yang tidak aktif
systemctl list-units --type=service --state=runningHanya service yang prosesnya hidup
systemctl --failedHanya unit yang gagal — pemeriksaan kesehatan harian
systemctl list-unit-files --type=serviceSetiap service yang terpasang dan pengaturan boot-nya
systemctl list-unit-files --state=enabledUnit yang berjalan otomatis saat boot
systemctl status nameDetail lengkap satu service, dengan baris log terbaru
systemctl is-active nameStatus satu kata plus kode keluar yang ramah skrip
systemctl is-enabled nameKonfigurasi boot untuk satu service
service --status-allDaftar gaya SysV dari skrip /etc/init.d (kompatibilitas)

Alur kerja di dunia nyata

1. Temukan service yang terus gagal

systemctl --failed
systemctl status myapp.service --no-pager -l
journalctl -xeu myapp.service
systemctl reset-failed myapp.service

Mulailah luas dengan --failed, lalu baca keluaran status untuk kode keluar dan baris log terakhir, kemudian gali jurnal untuk jejak lengkapnya. Setelah akar masalah diperbaiki dan service kembali hidup, reset-failed membersihkan entri failed yang basi sehingga pemeriksaan kesehatan berikutnya dimulai dari kondisi bersih.

2. Audit apa yang akan berjalan pada boot berikutnya

systemctl list-unit-files --type=service --state=enabled --no-legend | awk '{print $1}'
systemd-analyze blame

Perintah pertama memberi Anda daftar bersih dari semua yang akan berjalan otomatis — berguna sebelum melakukan hardening server atau melacak sesuatu yang Anda pasang berbulan-bulan lalu dan sudah lupa. systemd-analyze blame kemudian menunjukkan berapa lama setiap unit membutuhkan waktu pada boot terakhir, dan di situlah service yang lambat langsung terlihat.

3. One-liner untuk skrip dan monitoring

systemctl is-active --quiet nginx && echo up || echo down
systemctl list-units --type=service --state=running --no-legend --plain | awk '{print $1}'
systemctl show -p ActiveState,SubState nginx
systemctl list-units --type=service -o json   # systemd 246 or newer

show -p mencetak pasangan Key=Value yang formatnya tidak pernah berubah antar versi, dan keluaran JSON-nya langsung bisa dialirkan ke jq. Jika Anda mendapati diri menjalankan ulang pemeriksaan yang sama setiap kali login, bungkus semuanya dalam skrip kecil — panduan kami tentang file .sh dan shell scripting membahas cara mengubah potongan seperti ini menjadi alat yang bisa dipakai berulang.

Tidak ada systemd? service --status-all dan OpenRC

Sebelum berasumsi systemctl tersedia, pastikan dulu apa yang sebenarnya dijalankan mesin itu — memeriksa OS dan versinya dari command line hanya butuh sepuluh detik dan memberi tahu apakah Anda memang berada di distribusi systemd. Kalau systemctl tidak ada, Anda berada di SysV init atau OpenRC:

service --status-all

Di Debian dan Ubuntu perintah ini menelusuri /etc/init.d dan mencetak [ + ] untuk yang berjalan, [ - ] untuk yang berhenti, dan [ ? ] untuk skrip tanpa perintah status. Ini masih berfungsi di distribusi systemd melalui lapisan kompatibilitas, tetapi hanya melihat skrip init, jadi di sana lebih baik pakai systemctl. Di Alpine dan Gentoo, OpenRC adalah init system-nya: rc-status menampilkan service di runlevel saat ini dan rc-update show menampilkan apa yang dijalankan setiap runlevel.

Semua di atas mengasumsikan Anda punya mesin Linux tempat Anda memegang root dan bisa menjalankan, merusak, serta memperbaiki service dengan bebas. Kalau Anda butuh satu untuk berlatih — atau mesin bersih untuk menjalankan beban kerja nyata — VPS Linux dengan akses root penuh dari rdp.monster hadir dengan CPU dan RAM dedicated, bandwidth tak terbatas (fair-use), tanpa KYC, dan dikirim sekitar 10 detik setelah pembayaran dikonfirmasi, sehingga Anda bisa menjalankan systemctl list-units di server sendiri dalam waktu kurang dari satu menit.

Pertanyaan yang sering ditanyakan

Mengapa sebuah service menampilkan active (exited) dan bukan active (running)?

Itu service oneshot yang berjalan sukses lalu selesai — bukan sebuah error.
Service dengan Type=oneshot (atau RemainAfterExit=yes) menjalankan sebuah tugas sekali saja — mounting, penyiapan firewall, pembersihan — lalu keluar. systemd kemudian melaporkan active (exited): unit berhasil dan dianggap "hidup", tetapi tidak ada proses yang tetap tinggal. Hanya daemon seperti nginx atau sshd yang menampilkan active (running). Kalau sebuah service yang Anda harapkan berupa daemon justru menampilkan exited, periksa file unit-nya dengan systemctl cat name.service untuk melihat bagaimana ia dideklarasikan.

Apa arti titik berwarna pada keluaran systemctl?

Hijau berarti aktif, putih berarti tidak aktif, dan merah berarti gagal atau error.
Bullet sebelum nama unit pada systemctl status dan systemctl list-units adalah indikator status cepat: hijau untuk aktif, putih untuk tidak aktif atau sedang dinonaktifkan, dan merah untuk status gagal atau error. Baris yang gagal juga disorot merah dalam daftar, sehingga systemctl --failed mudah dibaca sekilas. Pada skrip atau log di mana kode warna justru mengganggu, tambahkan --plain atau alirkan keluarannya, dan dekorasi itu akan hilang.

Apakah ada padanan systemctl untuk chkconfig --list?

Ya — systemctl list-unit-files --type=service menggantikan chkconfig --list.
Pada RHEL dan CentOS 7 atau yang lebih baru, chkconfig --list digantikan oleh systemctl list-unit-files --type=service, yang menampilkan setiap service terpasang dan apakah statusnya enabled, disabled, static, atau masked. Untuk satu service, systemctl is-enabled name menggantikan chkconfig name, dan systemctl enable name menggantikan chkconfig name on. Perintah lama mungkin masih ada sebagai lapisan kompatibilitas, tetapi hanya mencakup skrip SysV warisan.

Bagaimana cara mencegah sebuah service berjalan saat boot?

Gunakan systemctl disable untuk melepasnya dari boot, atau mask untuk memblokirnya sama sekali.
Jalankan sudo systemctl disable name untuk menghapus symlink boot; tambahkan --now agar sekaligus dihentikan saat itu juga. Service yang disabled masih bisa dijalankan manual atau ditarik sebagai dependensi unit lain. Kalau Anda ingin ia tidak pernah berjalan sama sekali, gunakan sudo systemctl mask name, yang menautkan unit ke /dev/null sehingga setiap upaya menjalankannya gagal. Balikkan nanti dengan systemctl unmask. Verifikasi hasilnya dengan systemctl is-enabled name.

Adrien Roche — Editor Infrastruktur & Hosting

Insinyur sistem dengan pengalaman 10+ tahun mengoperasikan armada Windows Server dan Linux. Adrien mengelola dokumentasi infrastruktur rdp.monster dan menulis panduan kami tentang RDP, hosting VPS, administrasi server, jaringan, dan perangkat privasi.

Daftar ke program reseller kami

Data Anda

Jika Anda punya pertanyaan, contact us by clicking here !
Nama(Wajib)
Masukkan alamat email Anda, Anda harus memiliki akun di manager.rdp.monster !

Perusahaan Anda

Masukkan alamat situs web Anda jika ada
Jelaskan singkat bagaimana Anda akan menjual layanan kepada pelanggan Anda. Misalnya, berbincang dengan orang-orang di forum.

Kami menggunakan cookie !

Kami menggunakan cookie untuk meningkatkan pengalaman penjelajahan Anda, menampilkan iklan atau konten yang dipersonalisasi, dan menganalisis lalu lintas kami. Dengan mengklik «Terima», Anda menyetujui penggunaan cookie oleh kami.