Cara Mendaftar Layanan Linux Dengan systemctl
Diterbitkan: 2022-10-23Komputer 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.
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
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
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
.
Untuk melihat ujung kanan tabel, tekan tombol Panah Kanan. Untuk kembali ke tampilan biasa, tekan tombol Panah Kiri.
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
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
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
Menekan tombol Panah Kanan untuk melihat kolom di luar layar menunjukkan bahwa kami memiliki campuran layanan yang keluar dan gagal dalam daftar.
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
Sebuah tabel berwarna ditampilkan.
Menghapus opsi state
menghapus pemfilteran. Outputnya akan berisi semua file unit yang diinstal, terlepas dari statusnya.
systemctl daftar-unit-file
Output akan berisi lebih banyak entri daripada hasil dari perintah sebelumnya.
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
Jumlah hasil yang dikurangi ditampilkan, difilter menurut pilihan yang Anda buat dengan opsi status.
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
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