Cara Mendaftar Layanan Linux Dengan systemctl

Diterbitkan: 2022-10-23
Laptop Linux menampilkan prompt bash
fatmawati achmad zaenuri/Shutterstock.com
Untuk melihat semua layanan yang berjalan pada sistem Linux dengan systemd, gunakan perintah "systemctl --type=service --state=running". Ini akan menunjukkan kepada Anda nama, beban, sub-status, dan deskripsi setiap layanan yang aktif. Anda juga dapat mengubah nilai status untuk melihat layanan yang mati, keluar, gagal, atau tidak aktif.

Komputer Linux Anda bergantung pada banyak tugas latar belakang yang disebut layanan atau daemon. Pada distribusi berbasis systemd Anda memiliki perintah bawaan yang memungkinkan Anda melihat layanan mana yang berjalan, dinonaktifkan, atau gagal.

Layanan dan Daemon

Layanan dan daemon adalah tugas latar belakang yang berjalan tanpa antarmuka pengguna, tidak memerlukan interaksi manusia, dan biasanya dimulai saat komputer dinyalakan.

Pada suatu waktu, layanan diluncurkan oleh init , yang merupakan proses pertama yang diluncurkan. Rincian layanan disimpan dalam kumpulan skrip yang terletak di direktori “/etc/init/d”. Pada distribusi non-systemd itu masih terjadi.

Di dunia systemd, layanan diluncurkan oleh systemd yang merupakan proses pertama yang diluncurkan. Rincian layanan disimpan dalam file unit yang terletak di direktori “/usr/lib/systemd”.

Menurut halaman manualnya, systemd adalah manajer sistem dan layanan. Anda dapat menggunakan perintah systemctl untuk memeriksa dan mengontrol berbagai aspek sistem systemd, termasuk layanan dan daemon.

Karena kita melihat perintah khusus systemd di sini, hal pertama yang perlu Anda ketahui adalah apakah Anda menjalankan distribusi berbasis systemd atau tidak.

TERKAIT: Mengapa systemd Linux Masih Membagi Setelah Bertahun-tahun

init Atau berbasis systemd?

Sebagian besar distribusi Linux menggunakan systemd, termasuk Arch, Red Hat, dan Debian, dan banyak dari distribusi yang diturunkan darinya. Itu termasuk keluarga distribusi Ubuntu, Fedora dan putarannya, dan Manjaro dan distribusi berbasis Arch lainnya.

Namun, ada fork atau flavor dari beberapa distribusi ini yang telah dibuat khusus untuk menghindari keharusan menggunakan systemd. Tidak hanya itu, tetapi ada sistem init lain yang dapat dipilih seseorang untuk digunakan sebagai ganti yang datang secara default dalam distribusinya, seperti runit atau s6-linux-init.

Cara Menjalankan Program Linux saat Startup dengan systemd
TERKAIT Cara Menjalankan Program Linux saat Startup dengan systemd

Jika Anda harus mengelola komputer Linux yang tidak Anda atur sendiri, satu-satunya cara untuk memastikan apakah komputer tersebut menggunakan systemd atau tidak, adalah dengan memeriksanya. Kita dapat melakukannya dengan melihat pohon proses dengan perintah pstree . Kita hanya perlu melihat bagian paling atas dari pohon—bagaimanapun juga, kita sedang mencari proses pertama yang berjalan—jadi kita akan menyalurkan output melalui perintah head , dan meminta lima entri pertama.

 pstree | kepala -5 

Menggunakan pstree yang disalurkan melalui kepala untuk menentukan apakah instalasi Linux menggunakan systemd

Kita dapat melihat bahwa systemd adalah proses pertama yang dijalankan setelah boot, jadi kita pasti pada instalasi Linux berbasis systemd.

TERKAIT: Cara Mengelola Proses dari Terminal Linux: 10 Perintah yang Harus Anda Ketahui

Menggunakan systemctl Untuk Mendaftar Layanan

Perintah untuk membuat daftar layanan dan daemon adalah systemctl . Kita dapat memperbaiki perintah systemctl dengan opsi type dan state . Kami meminta systemctl untuk melaporkan layanan yang sedang berjalan.

 systemctl --type=service --state=running 

Menggunakan systemctl untuk membuat daftar layanan yang berjalan

Sebuah tabel informasi dihasilkan. Jika terlalu lebar atau panjang untuk jendela terminal Anda, itu akan ditampilkan di penampil file default Anda, yang kemungkinan akan lebih less .

Output dari panggilan systemctl ditampilkan di penampil file yang lebih sedikit

Untuk melihat ujung kanan tabel, tekan tombol Panah Kanan. Untuk kembali ke tampilan biasa, tekan tombol Panah Kiri.

Bagian kanan output dari panggilan systemctl ditampilkan di penampil file yang lebih sedikit

Tekan tombol Q untuk keluar dari less. Kolom yang ditampilkan adalah:

  • Unit : Nama layanan atau daemon. Kolom tersebut diberi judul “Unit” karena apapun yang ada di kolom ini diluncurkan menggunakan systemd informasid yang terdapat dalam file unit.
  • Load : Status beban layanan atau daemon. Itu dapat dimuat, tidak ditemukan, pengaturan buruk, kesalahan, atau ditutupi.
  • Aktif : Status keseluruhan layanan atau daemon. Ini bisa aktif, memuat ulang, tidak aktif, gagal, mengaktifkan, atau menonaktifkan.
  • SUB : Sub-status layanan atau daemon. Itu bisa mati, keluar, gagal, tidak aktif, atau berjalan.
  • Description : Deskripsi singkat tentang unit.

Kita dapat menyalurkan output systemctl melalui grep jika kita ingin fokus pada satu layanan. Perintah ini mengisolasi entri tabel untuk layanan ssh .

 systemctl --type=service --state=running | grep ssh 

Menggunakan grep untuk mengisolasi satu layanan dari hasil

Sejauh ini, kami telah memfilter konten tabel dengan menyediakan opsi state=running . Kita dapat menggunakan salah satu nilai yang mungkin dari sub-status sebagai gantinya: mati, keluar, gagal, tidak aktif, atau berjalan.

Mari kita cari layanan yang gagal:

 systemctl --type=service --state=gagal 

Melaporkan layanan yang gagal dengan systemctl

Kombinasi sub-state dapat digunakan. Ketik mereka sebagai daftar yang dipisahkan koma. Pastikan Anda tidak menyertakan spasi di antara opsi. Perhatikan bahwa ini menemukan layanan yang cocok dengan salah satu negara bagian.

 systemctl --type=service --state=gagal, keluar 

Mencari layanan yang gagal atau keluar dengan systemctl

Menekan tombol Panah Kanan untuk melihat kolom di luar layar menunjukkan bahwa kami memiliki campuran layanan yang keluar dan gagal dalam daftar.

Campuran layanan yang gagal dan keluar ditemukan oleh systemctl

Secara default, systemctl mencantumkan proses—layanan dan daemon—yang telah diluncurkan oleh systemd karena systemd menemukan file unit yang berisi file unit yang valid untuk mereka. Itu sebabnya istilah singkat untuk semua proses ini adalah "unit."

Ada opsi untuk secara eksplisit meminta systemctl ke daftar unit, tetapi karena ini adalah tindakan default, itu tidak sering digunakan.

Perintah-perintah ini menghasilkan hasil yang sama.

 sudo systemctl list-units --type=service --state=running
 sudo systemctl --type=service --state=running

Menggunakan systemctl Untuk Mencantumkan File Unit

Kita dapat memperluas cakupan perintah systemctl dengan menyertakan opsi list-unit-files . Ini tidak hanya melaporkan layanan dan daemon yang telah diluncurkan, tetapi juga mencantumkan semua file unit yang diinstal pada komputer Anda.

 systemctl list-unit-files --state=enabled 

Daftar file unit dengan systemctl

Sebuah tabel berwarna ditampilkan.

Daftar file unit yang dihasilkan oleh systemctl, ditampilkan di browser file yang lebih sedikit

Menghapus opsi state menghapus pemfilteran. Outputnya akan berisi semua file unit yang diinstal, terlepas dari statusnya.

 systemctl daftar-unit-file 

Menggunakan systemctl untuk membuat daftar file unit tanpa pemfilteran

Output akan berisi lebih banyak entri daripada hasil dari perintah sebelumnya.

Semua file unit terdaftar oleh systemctl dan ditampilkan di browser file yang lebih sedikit

Pada komputer uji kami, daftar hasil hampir empat kali lebih panjang dari keluaran perintah kami sebelumnya.

Jika Anda ingin menggunakan opsi state , Anda dapat menggunakan beberapa status dengannya seperti yang kita lihat sebelumnya. Aturan yang sama berlaku. Berikan opsi sebagai nilai yang dipisahkan koma dan jangan sertakan spasi putih apa pun.

Perintah ini akan mencantumkan semua file unit yang dinonaktifkan atau gagal diluncurkan.

 systemctl list-unit-files --state=enabled,failed 

Menggunakan systemctl untuk mencari file unit yang cocok dengan salah satu dari dua status

Jumlah hasil yang dikurangi ditampilkan, difilter menurut pilihan yang Anda buat dengan opsi status.

Campuran file unit yang dinonaktifkan dan gagal ditemukan oleh systemctl

Melihat Satu Layanan secara Detail

Jika sesuatu tentang satu layanan atau daemon menarik minat Anda dan layak untuk digali lebih dalam, Anda dapat melihatnya secara detail menggunakan opsi systemctl status.

Mari kita lihat daemon SSH, sshd. Yang perlu kita lakukan adalah menggunakan opsi status dan nama layanan atau daemon.

 systemctl status sshd 

Detail satu layanan ditampilkan oleh systemctl

Tampilan ringkas ini menunjukkan:

  • Nama layanan bersama dengan deskripsi singkat. Titik berkode warna menunjukkan apakah itu berjalan atau tidak. Hijau berarti sedang berjalan, merah berarti tidak.
  • Apa yang dimuat, termasuk jalur ke file unit.
  • Sudah berapa lama berjalan.
  • Di mana dokumentasi terletak di manual man .
  • ID Proses dari instance yang sedang berjalan.
  • Berapa banyak instance bersamaan dari layanan ini yang berjalan. Biasanya ini akan menjadi satu.
  • Berapa banyak memori yang dikonsumsi.
  • Berapa banyak waktu CPU yang telah dikonsumsi.
  • Grup kontrol milik layanan.

Entri yang relevan dari log sistem juga ditampilkan. Ini biasanya peristiwa seperti startup layanan. Ini bisa menjadi informasi jika Anda mencari layanan atau daemon yang tidak diluncurkan dengan benar.

TERKAIT: Cara Menggunakan journalctl untuk Membaca Log Sistem Linux

Sistem Otonom

Layanan dan daemon menyediakan banyak tindakan otomatis dari sistem operasi Anda, jadi mereka sangat penting. Itu berarti kesehatan mereka juga penting.

Mendapatkan tampilan pada layanan, daemon, dan file unit Anda mudah, dan informatif. Ini juga merupakan langkah pemecahan masalah yang berharga jika layanan atau daemon menolak untuk memulai.

TERKAIT: Cara Mengatasi Kesalahan "Terlalu Banyak File Terbuka" di Linux