systemctl ile Linux Hizmetleri Nasıl Listelenir
Yayınlanan: 2022-10-23
Linux 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 systemdher ş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 mankı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

