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

/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

Çı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

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

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

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

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

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

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 hizmeti durdurmak, başlatmak kadar kolaydır.
Terliyorum sistemctl durmak htg-örneği.hizmet

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 hizmetin önyükleme sırasında başlamasını istiyorsanız, onu etkinleştirmeniz gerekir.
Terliyorum sistemctl olanak vermek htg-örneği.hizmet

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

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

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

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. 🔧🛠️