Hizmet ve Systemctl

Hizmet Ve Systemctl



Service ve systemctl, sistem hizmetlerini yönetmek için kullanılan iki komut satırı yardımcı programıdır. Her iki yardımcı program da sırasıyla SysV ve systemd olmak üzere iki farklı başlatma sistemine aittir.

Bu kılavuzda service ve systemctl komutlarını ve bunların servis yönetimi açısından nasıl farklı olduklarını tartışacağım.

Daha ileri gitmeden önce iki popüler Linux init sistemini anlayalım; Sistem ve Sistemd.







Sistem V ve Sistemd

Linux'taki başlatma sistemi, önyükleme işleminin çok önemli bir parçasıdır. Sistem önyüklendiğinde başlayan PID 1'li ilk işlemdir. Daha sonra inittab dosyasında bulunan işlemleri başlatır. System V aynı zamanda SysV ve systemd'nin popüler Linux init sistemleri olduğunu da biliyor.



SistemV daha eski bir init sistemidir ve eski Unix ve Linux dağıtımlarının bir parçası olmuştur. /etc/init.d dosyasında bulunan komut dosyalarını kullanarak sistem hizmetlerini yönetir. Halen SysV kullanan bazı Linux dağıtımları Slackware, Gentoo ve antiX Linux'tur.



Diğer taraftan, sistemd 2010 yılında piyasaya sürüldü ve birçok Linux dağıtımı tarafından hızla benimsendi. Systemd init sistemi, hizmetleri .service dosyaları aracılığıyla yönetir. Artık Red Hat Enterprise Linux, CentOS, Amazon Linux, Fedora, Debian, Ubuntu ve bu işletim sistemlerini temel alan dağıtımlar dahil tüm modern Linux dağıtımlarının bir parçasıdır.





Systemd, SysV'ye kıyasla çok daha verimlidir. Daha hızlı önyükleme süresi, verimli hizmet yönetimi ve bağımlılık yönetimi sağlar.

Her iki init sistemi de hizmet yönetimi için iki komut satırı yardımcı programı sağlar.



Kılavuzun ilerleyen bölümlerinde bu iki yardımcı programı tartışacağım.

servis Komutanlığı

hizmet komut, komut dosyasında bulunan komut dosyalarını çalıştıran bir komut dosyası sarmalayıcısıdır. /etc/init.d dizin. Hizmetlerini yönetmek için geliştirildi. SistemV veya Sistem V başlatma sistemi. SysV'yi başlangıç ​​sistemi olarak kullanan Linux dağıtımları, hizmet Servis yönetimi için komut.

Service komutunun kullanımına ilişkin genel sözdizimi aşağıda verilmiştir.

hizmet [ hizmet adı ] [ aksiyon ]

System V tarafından kontrol edilen hizmetlerin durumunu almak için service komutunu kullanın. –durum-tümü seçenek.

hizmet --durum-tümü

+ hizmetin çalıştığını gösterir ve hizmetin etkin olmadığını gösterir.

Belirli bir hizmetin mevcut durumu, hizmet adı belirtilerek de kontrol edilebilir.

hizmet [ hizmet adı ] durum

Bir hizmeti başlatma, durdurma ve yeniden başlatma gibi diğer bazı yararlı hizmet komutları aşağıda listelenmiştir.

hizmet [ hizmet adı ] başlangıç

hizmet [ hizmet adı ] durmak

hizmet [ hizmet adı ] tekrar başlat

Bu hizmet komutu, hizmetleri yönetmek için temel kontrol sağlar. Linux dağıtımlarının çoğu, bir başlangıç ​​sistemi olarak SysV'nin yerini almıştır, ancak eski uyumluluk nedeniyle, bu komut hala birçok yeni Linux dağıtımında kullanıma hazır olarak gelmektedir.

systemctl Komutu

Systemctl komutunu kullanarak hizmetleri kontrol edebilirsiniz. /lib/systemd/system Ve /etc/systemd/system dizinler. Systemd'nin bir bileşenidir; çağdaş Linux dağıtımlarının çoğunda bulunan bir init sistemi.

Systemctl, sistem servis yönetimi üzerinde daha fazla kontrol sağlamak için tasarlanmıştır. Systemctl komutunun kullanımına ilişkin genel sözdizimi aşağıda verilmiştir:

sistemctl [ seçenek ] [ hizmet adı ]

Tüm hizmetlerin durumunu kontrol etmek için aşağıdaki komutu kullanın.

systemctl liste birimleri --tip =hizmet --Tümü

Belirli bir hizmet kullanımı için:

sistemctl durumu [ hizmet adı ]

Systemctl kullanarak hizmetin temel yönetimine yönelik komutlar aşağıda verilmiştir:

sistemctl olanak vermek [ hizmet adı ]

systemctl başlat [ hizmet adı ]

systemctl durdur [ hizmet adı ]

systemctl devre dışı bırak [ hizmet adı ]

systemctl yeniden başlat [ hizmet adı ]

Systemctl komutu, hizmetlerin kontrol edilmesi söz konusu olduğunda bunun ötesine geçer. Aşağıdaki tablo bazı gelişmiş systemctl komutlarını içermektedir.

liste yolları Bellekteki tüm servislerin yolunu listelemek için
etkin [hizmet_adı] Hizmetin veya birimin çalışıp çalışmadığını kontrol etmek için
liste bağımlılıkları [hizmet_adı] Belirtilen hizmetin bağımlılıklarının listesini yazdırmak için
sıfırlama başarısız oldu Bazı anormallikler nedeniyle yüklenemeyen hizmetleri sıfırlamak için
maske [hizmet_adı] Hizmeti devre dışı bırakmak ve başlatılamaz duruma getirmek için
varsayılanı al Varsayılan çalışma seviyesini veya hedefini yazdırmak için
varsayılan ayarla [hedef] Varsayılan çalıştırma seviyesini veya hedefini ayarlamak için
sistem çalışıyor Sistemin çalışma durumunu kontrol etmek için
yeniden başlat Sistemi yeniden başlatmak için
Kapat Sistemi kapatmak için

Linux Dağıtımlarında neden hala systemd init System ile bir servis Komutu var?

Service komutu hala birçok Linux dağıtımının bir parçasıdır çünkü bir sarmalayıcı komut dosyasıdır ve ister SysV ister systemctl olsun, temeldeki init sistemini soyutlar. Örneğin, Ubuntu'da service komutu systemctl'ye yönlendirir.

Çözüm

Service ve systemctl, sırasıyla SysV ve systemd init sistemlerine ait iki komut satırı yardımcı programıdır. Modern Linux dağıtımlarında servis komutunun değiştirilmesine rağmen, basitlik ve uyumluluk nedeniyle hizmetlerin sürdürülmesinde önemli bir araç olmaya devam etmektedir. Systemctl ise mevcut tüm Linux dağıtımlarının bir parçasıdır ve hizmet yönetimi için gelişmiş seçenekler sunar.