systemctl: Linux'ta 12 Adımda Tam Kontrol

Linux'ta ustalaşan systemctl 12 komutları

systemctl: Linux'ta ustalaşmanızı sağlayacak 12 komut 🚀

systemctl komutunun sıklıkla göz ardı edilen birkaç özelliği vardır. Linux'ta servisleri başlatıp durdurmanın yanı sıra, yüklü servisleri listeleyebilir ve durumlarını kontrol edebilirsiniz. Hadi kısa bir gözden geçirelim! 🚀

Systemctl Komutu Nedir?

Systemctl komutu, systemd init sisteminin merkezi yönetim aracıdır ve öncelikli olarak hizmetleri başlatmak ve durdurmak için kullanılan araç olarak bilinir. Ancak onun da kanıtladığı gibi, çok daha fazlası var adam sayfası 1600'den fazla satıra sahip. 📖

Systemctl yalnızca bir servis başlatıcı değil, aynı zamanda bir yönetim aracı olduğundan, sisteminiz ve systemd servisleri hakkında yararlı bilgilere erişmek için kullanabilirsiniz. 💻

Çoğu Linux dağıtımı systemd'yi benimsemiştir, ancak bazıları geleneksel SystemV başlatma sistemini korumayı seçmiştir. Eğer dağıtımınızın hangisini kullandığından emin değilseniz, bunu bulmak kolaydır. İnit dosyasına bakmak için stat komutunu kullanacağız.

istatistik /sbin/init 
Linux kurulumunun SystemV mi yoksa systemd mi kullandığını görmek için stat komutunu kullanma.

/sbin/init yürütülebilir dosyası, SystemV tabanlı dağıtımlarda başlatılan ilk işlemdir. Systemd tabanlı dağıtımlarda, aynı isimde bir sembolik bağlantı systemd'yi işaret eder.

Çıktının ilk satırı bize bu Ubuntu test makinesinde /sbin/init'in /lib/systemd/systemd dosyasına sembolik bir bağlantı olduğunu gösteriyor. Açıkça görüldüğü üzere bu Linux kurulumu systemd kullanıyor. Eğer SystemV tabanlı bir dağıtım olsaydı, satır yalnızca “Dosya: /sbin/init” içerecekti.

systemctl ile Hizmetleri Sorgulama

Servisler birim dosyalarında tanımlanır ve systemctl seçeneklerinde unit kelimesinin dağılmış olduğunu görürsünüz. Örneğin list-units komutunun –type seçeneğini kullanarak servislerin listesini elde edebiliriz.

sistemctl liste-birimler --tür=hizmet
Çalışan ve durdurulmuş servisleri gösteren systemctl list-units komutunun çıktısı.

Çıktı less dosya görüntüleyicisinde görüntülenir, böylece gezinmenize ve arama yapmak için / tuşunu kullanmanıza olanak tanır.

  • Birim: Birim dosyasının adı.
  • Taşımak: Eğer servis birimi dosyası sözdizimi hataları olmadan belleğe okunduysa, bu sütunda “loaded” ifadesi yer alacaktır. Bu, hizmetin aktif olduğu anlamına gelmez.
  • Varlık: Bir hizmetin etkin olup olmadığına dair genel bakış. Etkin bir servis çalışmıyor olabilir.
  • Alt: Bir servisin çalışıp çalışmadığına dair daha detaylı bir görünüm. Örneğin, etkin bir hizmet bir zamanlayıcı için planlanmış olabilir ve son çalışmasından çıkmış olabilir.
  • Tanım: Hizmeti tanımlamayı veya açıklamayı amaçlayan bir metin satırı.

Ekranda yalnızca aktif servisler yer alıyor. Tüm servisleri görebilmek için –all seçeneğini eklememiz gerekiyor.

sistemctl liste-birimler --tümü --tür=hizmet
Tüm servisleri gösteren systemctl list-units komutunun çıktısı.

Eğer her şeyi görüntülemek bunaltıcıysa, çıktıyı –state seçeneğiyle filtreleyebiliriz.

sistemctl liste-units --type=hizmet --state=çalışıyor
systemctl list-units komutunun çıktısı, yalnızca çalışan hizmetleri gösterecek şekilde filtrelendi.

Durum seçeneği çalışıyor, durduruldu, etkin, devre dışı ve başarısız durumlarını kabul edecektir.

Başarısız hizmetlere odaklanmak için –failed seçeneğini kullanın.

sistemctl liste-birimler --başarısız
systemctl list-units komutunun çıktısı, yalnızca başarısız hizmetleri gösterecek şekilde filtrelendi. Başarısız hizmet yoktur.

Bu bilgisayarda arızalı sürücü yok.

Başarısız hizmetler görürseniz, karşılanmayan bağımlılıkları kontrol etmek için bağımlılıkları listele seçeneğini kullanın.

sistemctl liste-bağımlılıklar sshd.service
sshd servisi için bağımlılıkları gösteren systemctl list-dependencies komutunun çıktısı.

Bağımlılıklar, durumlarını temsil eden renk kodlu bir daireye sahiptir. Olabilir:

  • Beyaz daire: Etkin değil veya bakımda
  • Yeşil Nokta: Varlık.
  • Beyaz Nokta: Devre dışı bırakılıyor.
  • Kırmızı Nokta: Başarısız veya hata.

Tek bir hizmetin etkin olup olmadığını denetlemek için is-enabled komutunu kullanın ve hizmetin birim dosyasının adını belirtin.

sistemctl es-etkinleştirilmiş htg-example.service
Belirli bir hizmetin etkin olup olmadığını belirlemek için systemctl is-enabled komutunu kullanın.

systemctl ile Hizmetleri Kontrol Etme

Hizmetleri yönetmek için systemctl kullanmak çok basittir ve şu ana kadar gördüğümüz komutların formatını takip eder. En büyük fark, servis durumlarında değişiklik yapmak için sudo kullanmanız gerekecek olmasıdır. Şimdiye kadar bunu yapmadık, çünkü sadece hizmetlerin durumuyla ilgili raporlama yapıyorduk.

Bir servisi başlatmak için, start komutunu ve ardından servis adını kullanın.

Terliyorum sistemctl başlangıç htg-örneği.hizmet
Bir servisi systemctl start komutuyla başlatmak.

Her şey yolunda giderse sessizce komut istemine geri döneceksiniz. Eğer olumlu bir onay almak isterseniz, status komutuyla bunu doğrulayabilirsiniz.

Terliyorum sistemctl durum htg-örneği.hizmet
Bir servisin durumunu systemctl status komutuyla kontrol etmek.

Bir hizmeti durdurmak, başlatmak kadar kolaydır.

Terliyorum sistemctl durmak htg-örneği.hizmet
Bir servisi systemctl stop komutuyla durdurmak.

Bir hizmeti durdurup tekrar başlatma gibi iki aşamalı bir işlemden geçmeden yeniden başlatabilirsiniz. O yeniden başlatma komutu her şeyi sizin için yapar.

Terliyorum sistemctl tekrar başlat htg-örneği.hizmet
Bir servisi systemctl restart komutuyla yeniden başlatma.

Bir hizmetin önyükleme sırasında başlamasını istiyorsanız, onu etkinleştirmeniz gerekir.

Terliyorum sistemctl olanak vermek htg-örneği.hizmet
Bir hizmeti systemctl enable komutuyla etkinleştirme.

Bunun yalnızca hizmeti önyükleme sırasında başlatacak şekilde işaretlediğini, hemen başlatmadığını unutmayın. Eğer istediğiniz buysa, –now seçeneğini ekledim.

Terliyorum sistemctl olanak vermek --Şimdi htg-örneği.hizmet
systemctl enable --now komutu ile bir servisi aynı anda etkinleştirmek ve başlatmak.

Artık önyükleme sırasında bir hizmetin başlatılmasına ihtiyacınız kalmadığında, onu devre dışı bırakın.

Terliyorum sistemctl devre dışı bırakmak htg-örneği.hizmet
Bir hizmeti systemctl disable komutuyla devre dışı bırakmak.

Systemd'nin bir diğer parçası olan journalctl komutunu kullanarak hizmetinizle ilgili girdileri arayabilirsiniz. -u (birim) seçeneği, ilgilendiğiniz hizmeti belirtmenize olanak tanır. -S (beri) seçeneğiyle, belirttiğiniz zamandan bu yana gerçekleşen girdileri görüntüleyebilirsiniz.

günlükctl -S "08:00:00" -veya htg-örneği.hizmet
Belirli bir servise ilişkin sistem günlük girişlerini görüntülemek için journalctl komutunu kullanma.

Size yardımcı olan herhangi bir araç operasyon hakkında bilgi edinin Linux dağıtımınızın dahili bileşenleri hem günlük yönetim hem de sorunları giderme ve teşhis etme açısından paha biçilmez olacaktır. systemctl komutu tek bir araç değildir. Daha çok özel bir alet çantasına benziyor ve aşina olmakta fayda var. 🔧🛠️

5 1 oy
Makale Puanı
Abone Ol
Bildiri
misafir

0 Yorumlar
Daha eski
El mas nuevo En çok oylanan
Çevrimiçi yorumlar
Tüm yorumları görüntüle