Cara Menampilkan Layanan yang Berjalan di Linux: Panduan Lengkap untuk Semua Sistem Init
Pendahuluan
Layanan Linux adalah proses latar belakang yang berjalan terus-menerus untuk melakukan tugas sistem, seperti mengelola jaringan, menangani login pengguna, atau menjalankan server web. Layanan ini dapat dikelola melalui berbagai alat, tergantung pada distribusi Linux dan sistem init yang digunakan.
Mengetahui cara menampilkan layanan yang berjalan sangat penting bagi administrator sistem dan pengembang. Ini membantu dalam:
- Memecahkan masalah – Memeriksa apakah layanan kritis sedang berjalan atau telah gagal.
- Pemantauan kinerja – Mengidentifikasi layanan yang memakan sumber daya.
- Audit keamanan – Memastikan hanya layanan yang diperlukan yang aktif.
Menggunakan systemctl (Untuk Sistem Berbasis Systemd)
Sebagian besar distribusi Linux modern, termasuk Ubuntu (16.04+), CentOS (7+), Fedora, dan Debian (8+), menggunakan systemd sebagai sistem init. Perintah systemctl
adalah alat utama untuk mengelola dan menampilkan layanan di sistem ini.
Memeriksa Status Layanan Tunggal
Untuk memeriksa apakah layanan tertentu sedang berjalan, gunakan:
systemctl status <service-name>
Sebagai contoh, untuk memeriksa apakah server web nginx sedang berjalan:
systemctl status nginx
Output akan menunjukkan apakah layanan tersebut aktif (berjalan), tidak aktif, atau gagal, bersama dengan log untuk debugging.
Menampilkan Semua Layanan Aktif
Untuk menampilkan semua layanan yang berjalan, gunakan:
systemctl list-units --type=service --state=running
Perintah ini menampilkan tabel semua layanan yang sedang berjalan beserta statusnya.
Menampilkan Semua Layanan (Termasuk yang Tidak Aktif)
Jika Anda ingin melihat semua layanan, terlepas dari apakah mereka sedang berjalan atau tidak:
systemctl list-units --type=service
Ini akan mencakup layanan yang aktif, tidak aktif, gagal, atau dalam status lainnya.
Memfilter Layanan Berdasarkan Status
Anda dapat memfilter layanan berdasarkan statusnya menggunakan:
systemctl list-units --type=service --state=failed
Ini akan menampilkan hanya layanan yang gagal, yang bisa berguna untuk pemecahan masalah.
Menampilkan Layanan yang Diaktifkan Saat Boot
Untuk memeriksa layanan mana yang diatur untuk mulai secara otomatis saat boot:
systemctl list-unit-files --type=service | grep enabled
Contoh Output
Output tipikal dari systemctl list-units --type=service --state=running
mungkin terlihat seperti ini:
UNIT LOAD ACTIVE SUB DESCRIPTION
cron.service loaded active running Regular background program processing daemon
networking.service loaded active running Raise network interfaces
ssh.service loaded active running OpenBSD Secure Shell server
systemd-logind.service loaded active running Login Service
Ringkasan
- Gunakan
systemctl status <service>
untuk memeriksa status layanan tunggal. - Gunakan
systemctl list-units --type=service --state=running
untuk menampilkan layanan aktif. - Gunakan
systemctl list-units --type=service
untuk melihat semua layanan. - Gunakan
systemctl list-unit-files --type=service
untuk melihat layanan yang diaktifkan saat boot.
Menggunakan ps dan grep untuk Proses yang Berjalan
Jika Anda ingin menampilkan layanan yang berjalan tanpa bergantung pada systemctl
atau alat manajemen layanan lainnya, Anda dapat menggunakan ps (status proses) bersama dengan grep untuk menemukan proses tertentu.
Metode ini berguna ketika:
- Anda bekerja di sistem Linux minimal yang tidak memiliki perintah
systemctl
atauservice
. - Anda ingin memeriksa apakah proses tertentu sedang berjalan, terlepas dari sistem init.
Menampilkan Semua Proses yang Berjalan
Perintah ps aux
menampilkan semua proses yang berjalan di sistem:
ps aux
Ini akan menghasilkan daftar panjang dari semua proses yang berjalan, termasuk ID proses (PID), penggunaan CPU, penggunaan memori, dan nama perintah.
Mencari Layanan Tertentu
Untuk memeriksa apakah layanan tertentu sedang berjalan, gunakan ps aux | grep <service-name>
:
ps aux | grep nginx
Ini akan mengeluarkan baris yang mencakup "nginx," menunjukkan apakah itu sedang berjalan. Output mungkin terlihat seperti ini:
root 1034 0.0 0.3 49536 3412 ? Ss 12:34 0:00 nginx: master process /usr/sbin/nginx
www-data 1035 0.0 0.2 49536 2824 ? S 12:34 0:00 nginx: worker process
user 2045 0.0 0.0 14856 900 pts/0 S+ 12:35 0:00 grep --color=auto nginx
Di sini:
- Dua baris pertama menunjukkan bahwa layanan nginx sedang berjalan.
- Baris terakhir (
grep --color=auto nginx
) adalah perintahgrep
itu sendiri. Anda dapat mengecualikannya dengan menggunakan:
ps aux | grep nginx | grep -v grep
Menampilkan Proses dalam Format Hierarkis
Untuk tampilan yang lebih terstruktur, gunakan:
ps fax
Ini menunjukkan struktur pohon dari proses yang berjalan, membuatnya lebih mudah untuk mengidentifikasi layanan mana yang berjalan dan proses anaknya.
Mencari Layanan Berdasarkan Port
Jika Anda mencurigai sebuah layanan berjalan di port tertentu tetapi tidak yakin dengan nama layanannya, gunakan:
netstat -tulnp | grep :80
atau, jika netstat
tidak tersedia:
ss -tulnp | grep :80
Ini akan menampilkan proses yang menggunakan port 80 (umumnya digunakan oleh server web seperti Nginx atau Apache).
Ringkasan
- Gunakan
ps aux
untuk menampilkan semua proses yang berjalan. - Gunakan
ps aux | grep <service-name>
untuk memeriksa layanan tertentu. - Gunakan
ps fax
untuk tampilan pohon dari proses. - Gunakan
netstat -tulnp
atauss -tulnp
untuk menemukan layanan yang berjalan di port tertentu.

FAQ (Pertanyaan yang Sering Diajukan)
1. Bagaimana cara memeriksa apakah sebuah layanan berjalan di Linux?
Anda dapat menggunakan berbagai metode tergantung pada distribusi Linux Anda:
- Untuk sistem berbasis systemd:
systemctl status <service-name>
- Untuk sistem berbasis SysVinit:
service <service-name> status
- Menggunakan ps dan grep:
ps aux | grep <service-name>
2. Bagaimana cara menampilkan semua layanan yang berjalan?
- Untuk sistem berbasis systemd:
systemctl list-units --type=service --state=running
- Untuk sistem berbasis SysVinit:
service --status-all
- Menggunakan perintah
ps
:ps aux
3. Bagaimana saya bisa memeriksa apakah sebuah layanan mulai saat boot?
- Untuk systemd:
systemctl is-enabled <service-name>
- Untuk SysVinit (sistem berbasis RHEL):
chkconfig --list <service-name>
4. Bagaimana cara me-restart sebuah layanan?
- Untuk sistem berbasis systemd:
sudo systemctl restart <service-name>
- Untuk sistem berbasis SysVinit:
sudo service <service-name> restart
5. Bagaimana cara menghentikan atau menonaktifkan sebuah layanan?
- Untuk menghentikan layanan sementara:
sudo systemctl stop <service-name>
- Untuk mencegah layanan mulai saat boot:
sudo systemctl disable <service-name>
6. Bagaimana saya bisa menemukan layanan yang menggunakan port tertentu?
Anda dapat menggunakan netstat
atau ss
untuk menemukan layanan yang berjalan di port tertentu:
netstat -tulnp | grep :80
atau
ss -tulnp | grep :80
7. Apa yang harus dilakukan jika systemctl
tidak ditemukan?
Jika Anda mendapatkan kesalahan seperti command not found: systemctl
, itu berarti sistem Anda mungkin tidak menggunakan systemd. Cobalah menggunakan:
service --status-all
atau
ps aux | grep <service-name>
8. Bagaimana cara menampilkan layanan yang gagal?
Untuk sistem berbasis systemd, jalankan:
systemctl list-units --type=service --state=failed
9. Bagaimana cara mengaktifkan logging untuk layanan tertentu?
Untuk memeriksa log untuk layanan yang dikelola oleh systemd, gunakan:
journalctl -u <service-name>
Untuk melihat log secara real-time:
journalctl -u <service-name> -f
10. Bisakah saya menggunakan top
atau htop
untuk melihat layanan yang berjalan?
Ya! top
dan htop
memberikan tampilan langsung dari proses yang berjalan:
- Gunakan
top
:top
- Gunakan
htop
(interaktif dan ramah pengguna):
(Instal denganhtop
sudo apt install htop
atausudo yum install htop
jika tidak tersedia.)