Cara Menampilkan Layanan yang Berjalan di Linux: Panduan Lengkap untuk Semua Sistem Init

2025-02-12

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 atau service.
  • 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 perintah grep 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 atau ss -tulnp untuk menemukan layanan yang berjalan di port tertentu.
Cara Menampilkan Layanan yang Berjalan di Linux

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):
    htop
    
    (Instal dengan sudo apt install htop atau sudo yum install htop jika tidak tersedia.)