systemctl ile Linux Hizmetleri Nasıl Listelenir
Yayınlanan: 2022-10-23Linux bilgisayarınız, hizmetler veya arka plan programı adı verilen birçok arka plan görevine dayanır. Systemd tabanlı dağıtımlarda, hangi hizmetlerin çalıştığını, devre dışı bırakıldığını veya başarısız olduğunu görmenizi sağlayan yerleşik komutlarınız vardır.
Hizmetler ve Daemon'lar
Hizmetler ve arka plan programları, kullanıcı arabirimi olmadan çalışan, insan etkileşimi gerektirmeyen ve genellikle bilgisayar başlatılırken başlatılan arka plan görevleridir.
Bir zamanlar, başlatılan ilk süreç olan init
tarafından hizmetler başlatıldı. Hizmetlerin ayrıntıları, “/etc/init/d” dizininde bulunan bir dizi komut dosyasında tutuldu. Sistem dışı dağıtımlarda hala durum böyle.
Systemd dünyasında, hizmetler şu anda başlatılan ilk süreç olan systemd
tarafından başlatılır. Servislerin detayları “/usr/lib/systemd” dizininde bulunan birim dosyalarında saklanır.
Man sayfasına göre systemd
bir sistem ve servis yöneticisidir. Hizmetler ve arka plan programları da dahil olmak üzere systemd sisteminin farklı yönlerini incelemek ve kontrol etmek için systemctl
komutunu kullanabilirsiniz.
Burada sisteme özgü komutlara baktığımız için, bilmeniz gereken ilk şey, sistemd tabanlı bir dağıtım çalıştırıp çalıştırmadığınızdır.
İLGİLİ: Neden Linux'un systemd Bunca Yıldan Sonra Hala Bölücü?
init Veya systemd Tabanlı?
Linux dağıtımlarının büyük çoğunluğu, Arch, Red Hat ve Debian dahil systemd'yi ve bunlardan türetilen dağıtımların çoğunu kullanır. Bu, Ubuntu dağıtım ailesini, Fedora ve dönüşlerini ve Manjaro ve diğer Arch tabanlı dağıtımları içerir.
Ancak, bu dağıtımlardan bazılarının systemd kullanmak zorunda kalmamak için özel olarak oluşturulmuş çatalları veya aromaları vardır. Sadece bu değil, birinin dağıtımlarında varsayılan olarak gelenler yerine kullanmayı seçebileceği runit veya s6-linux-init gibi başka init sistemleri de var.
Kendi kurmadığınız bir Linux bilgisayarı yönetmeniz gerekiyorsa, sistemd kullanıp kullanmadığından emin olmanın tek yolu kontrol etmektir. Bunu pstree
komutu ile işlem ağacına bakarak yapabiliriz. Ağacın sadece en tepesini görmemiz gerekiyor - sonuçta çalışan ilk süreci arıyoruz - bu yüzden çıktıyı head
komutundan geçireceğiz ve ilk beş girişi isteyeceğiz.
ağaç | kafa -5
Önyüklemeden sonra çalıştırılan ilk sürecin systemd
olduğunu görebiliriz, bu yüzden kesinlikle sistemd tabanlı bir Linux kurulumundayız.
İLGİLİ: Linux Terminalinden İşlemler Nasıl Yönetilir: Bilmeniz Gereken 10 Komut
Hizmetleri Listelemek için systemctl'yi kullanma
Hizmetleri ve arka plan programlarını listeleme komutu systemctl
. type
ve state
seçenekleri ile systemctl
komutunu geliştirebiliriz. systemctl
çalışır durumda olan hizmetler hakkında rapor vermesini istiyoruz.
systemctl --type=servis --state=çalışıyor
Bir bilgi tablosu oluşturulur. Terminal pencereniz için çok geniş veya uzunsa, varsayılan dosya görüntüleyicinizde görüntülenir, bu muhtemelen less
olacaktır.
Tablonun sağ ucunu görmek için Sağ Ok tuşuna basın. Normal görünüme dönmek için Sol Ok tuşuna basın.
Daha azdan çıkmak için Q tuşuna basın. Görüntülenen sütunlar şunlardır:
- Birim : Hizmetin veya arka plan programının adı. Sütunun adı “Birim” çünkü bu
systemd
her şey, bir birim dosyasında bulunan bilgi sistemi kullanılarak başlatıldı. - Load : Hizmetin veya arka plan programının yük durumu. Yüklenebilir, bulunamadı, kötü ayar, hata veya maskelenmiş olabilir.
- Etkin : Hizmetin veya arka plan programının içinde bulunduğu genel durum. Etkin, yeniden yükleniyor, etkin değil, başarısız, etkinleştiriliyor veya devre dışı bırakılıyor olabilir.
- SUB : Hizmetin veya arka plan programının alt durumu. Ölü, çıkılmış, başarısız, etkin değil veya çalışıyor olabilir.
- Açıklama : Ünitenin kısa bir açıklaması.
Tek bir hizmete odaklanmak istiyorsak, systemctl
çıktısını grep
aracılığıyla aktarabiliriz. Bu komut, ssh
hizmeti için tablo girişini yalıtır.
systemctl --type=service --state=çalışıyor | grep ssh
Şu ana kadar tablonun içeriğini state=running
seçeneğini sağlayarak filtreledik. Bunun yerine alt durumun olası değerlerinden herhangi birini kullanabiliriz: ölü, çıkıldı, başarısız, etkin değil veya çalışıyor.
Başarısız hizmetleri arayalım:
systemctl --type=service --state=başarısız
Alt durum kombinasyonları kullanılabilir. Bunları virgülle ayrılmış liste olarak yazın. Seçenekler arasında boşluk bırakmadığınızdan emin olun. Bunun, her iki durumla da eşleşen hizmetleri bulduğunu unutmayın.
systemctl --type=service --state=başarısız, çıkıldı
Ekran dışı sütunlara bakmak için Sağ Ok tuşuna basmak, listede çıkılan ve başarısız olan servislerin bir karışımına sahip olduğumuzu gösterir.
Varsayılan olarak systemctl
, systemd
systemd
başlatılan süreçleri (hizmetleri ve arka plan programlarını) listeler. Bu nedenle tüm bu süreçlerin kısaltması “birimler”dir.
Birimleri listelemek için systemctl
açıkça isteme seçeneği vardır, ancak varsayılan eylem olduğu için sık kullanılmaz.
Bu komutlar aynı sonuçları verir.
sudo systemctl liste birimleri --type=service --state=çalışıyor
sudo systemctl --type=service --state=çalışıyor
Birim Dosyalarını Listelemek için systemctl Kullanma
list-unit-files
seçeneğini systemctl
komutunun kapsamını genişletebiliriz. Bu, yalnızca başlatılan hizmetler ve arka plan programları hakkında rapor vermekle kalmaz, aynı zamanda bilgisayarınızda yüklü olan tüm birim dosyalarını da listeler.
systemctl liste-birim-dosyaları --durum=etkin
Renkli bir tablo görüntülenir.
state
seçeneğinin kaldırılması filtrelemeyi kaldırır. Çıktı, durumlarından bağımsız olarak kurulu tüm birim dosyalarını içerecektir.
systemctl liste-birim dosyaları
Çıktı, önceki komutların sonuçlarından çok daha fazla girdi içerecektir.
Test bilgisayarımızdaki sonuç listesi, önceki komutlarımızın çıktısından neredeyse dört kat daha uzundur.
state
seçeneğini kullanmak istiyorsanız, daha önce gördüğümüz gibi birden fazla durum kullanabilirsiniz. Aynı kurallar geçerlidir. Seçenekleri virgülle ayrılmış değerler olarak sağlayın ve boşluk bırakmayın.
Bu komut, devre dışı bırakılmış veya başlatılamayan tüm birim dosyalarını listeler.
systemctl liste-birim dosyaları --durum=etkin,başarısız
Durum seçeneğiyle yaptığınız seçimlere göre filtrelenmiş, azaltılmış sayıda sonuç gösterilir.
Tek Hizmete Ayrıntılı Olarak Bakmak
Bir hizmet veya arka plan programı hakkında bir şey ilginizi çekiyorsa ve daha derine inmeyi hak ediyorsa, systemctl durum seçeneğini kullanarak ona ayrıntılı olarak bakabilirsiniz.
SSH arka plan programı sshd'ye bir göz atalım. Tek yapmamız gereken durum seçeneğini ve hizmetin veya arka plan programının adını kullanmak.
systemctl durumu sshd
Bu kompakt ekran şunları gösterir:
- Kısa bir açıklama ile birlikte hizmetin adı. Renk kodlu bir nokta, çalışıp çalışmadığını gösterir. Yeşil çalıştığı anlamına gelir, kırmızı çalışmadığı anlamına gelir.
- Birim dosyasının yolu da dahil olmak üzere yüklenenler.
- Ne kadar süredir çalışıyor.
- Belgelerin
man
kılavuzunda bulunduğu yer. - Çalışan örneğin İşlem Kimliği.
- Bu hizmetin kaç eşzamanlı örneği çalışıyor. Genellikle bu bir olacaktır.
- Ne kadar bellek tüketiliyor.
- Ne kadar CPU zamanı tüketildi.
- Hizmetin ait olduğu kontrol grubu.
Sistem günlüğündeki ilgili girişler de gösterilir. Bunlar genellikle hizmetin başlatılması gibi olaylardır. Doğru başlatılmayan bir hizmet veya arka plan programı arıyorsanız, bunlar bilgilendirici olabilir.
İLGİLİ: Journalctl Linux Sistem Günlüklerini Okumak İçin Nasıl Kullanılır
Otonom Sistemler
Hizmetler ve cinler, işletim sisteminizin birçok otomatik eylemini sağlar, bu nedenle hayati önem taşırlar. Bu, sağlıklarının da hayati önem taşıdığı anlamına gelir.
Hizmetleriniz, arka plan programlarınız ve birim dosyalarınız hakkında bir görünüm elde etmek kolay ve bilgilendiricidir. Bir hizmet veya arka plan programı başlamayı reddederse, bu aynı zamanda değerli bir sorun giderme adımıdır.
İLGİLİ: Linux'ta "Çok Fazla Açık Dosya" Hatası Nasıl Çözülür