Öncelikle systemctl komutuna terminalde aldığınız cevap
systemctl is not installedgibi birşey olursa muhtemelen systemd dışında bir init sistemi kullanan bir linux dağıtımıyla karşı karşıyayız demektir.
Çalışan hizmetlerin bir listesini almak için kullanılacak komut
systemctl list-unitsolacaktır. Systemctl yardım sayfasında hafızadaki birimleri listeler denmiş. Bu komut varsayılan olarak etkin birimleri (unit) listeler. Bunun yerine sadece
systemctlile de aynı şeyi yapabiliriz. Bu komut ile listelenen tablodaki LOAD, ACTIVE ve SUB sütunlarında yer alan değerlerin anlamları şöyledir:
LOAD: loaded / not-found / bad-setting / error / masked. ilgili birim dosyası bulundu ve yüklendi veya bulunamadı, kötü yapılandırma, hata, maskelenme.
ACTIVE: active / inactive. birimin durumu; etkin veya değil.
SUB (substate): running / dead / exited / plugged / mounted. Bu sütunda yer alan değerler ACTIVE sütununda verilen durum bilgisi ile ilgili daha ayrıntı vermek için kullanılır. Değerler sistemden sisteme, sürümden sürüme değişebilir. Tam listeyi görmek için systemctl --state=help kullanılabilir.
unit olarak ifade edilen birimler hizmetler olabildiği gibi soketler, zamanlayıcılar da olabilir. Systemd'nin haberdar olduğu tüm birim dosyalarını listelemek için
systemctl list-unit-fileskullanılabilir. Bunların içinden sadece hizmetlere ait birim dosyalarını listelemek için
systemctl list-unit-files --type=service
kullanılır. Bu komut sonucunda STATE sütununda görülebilecek değerlerin anlamları şöyle olur:
enabled: etkin birim
disabled: etkin olmayan birim
static: Birim dosyasında birimin etkinleştirilmesi için bir "kurulum" (install) bölümü yok demektir. Bu gibi birimler ya başka bir birimin bağımlılığı olarak başlar ve dururlar, etkinleştirilemezler.
masked: etkinleştirilmesi bile engellenmiş birimler.
Bir birimin özelliklerini görmek için
systemctl show docker.service
Bu komutla bir sürü özellik listelenir. Sadece bir özellik için -p <property> gibi özellik değeri listelenebilir.
systemctl show docker.service -p Type
Bir birime ait yapılandırma dosyasını görmek için
systemctl cat docker.servicekomutunu kullanabiliriz. Genel olarak birim adının noktadan sonraki .service son ekini atlayarak
systemctl cat dockerkullanabiliriz.
Sırasıya bir hizmeti (servis) durdurmak, başlatmak ve yeniden başlatmak için aşağıdaki komutlar kullanılır:
systemctl stop dockerBazı birimler reload komutunu destekler. Restart'tan farklı olarak bu komut sadece değişen yapılandırma dosyalarını tekrar yükler ve hizmeti ayarları duraksamadan değiştirilebilir.
systemctl start docker
systemctl restart docker
systemctl reload dockerBir hizmeti etkinleştirmek veya tersi için
systemctl enable dockerkullanılır. Bir hizmetin durumunu görmek için
systemctl disable docker
systemctl status dockerveya kısaca etkin olup olmadığını görmek için
systemctl is-enabled dockerya da
systemctl is-failed dockerkullanılabilir.
list-unit-files ile sistemdeki etkin olan veya olmayan tüm birim dosyaları listelendi. Peki sistemdeki aktif birimleri (units) görmek için ne yapılabilir? Elbette
systemctl list-unit-files --state=enabledgibi bir komut kullanılabilir ama etkinleştirilmiş ama mevcut durumu "çalışıyor"dan farklı olan tüm birimleri görmek için ilk başta yazdığım gibi şu komut daha uygun:
systemctl list-unitsya da, hiçbir parametre kullanmadan sadece systemctl de aynı işi yapıyor. [1]'de list-units ve list-unit-files arasındaki fark için şöyle denmiş:
"list-units, sadece systemd'nin gerekli görüp hafızaya aldığı birim dosyalarını listeler."Bu durumda list-units'in, list-unit-files'ın bir altkümesini listelediğini düşünebiliriz. Aynı kaynakta birim için de şöyle bir tanım yapılmış:
"Birimler, systemd'nin bildiği kaynakların temsil edildiği dosyalardır."Bir birimin bağımlılıklarını görmek için
systemctl list-dependencies docker
kullanılabilir.
---
[1] https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units
[2] https://wiki.archlinux.org/index.php/Systemd
Hiç yorum yok:
Yorum Gönder