Systemctl Komutunu Kullanarak Bir Hizmet Nasıl Maskelenir

Systemctl Komutunu Kullanarak Bir Hizmet Nasil Maskelenir



Systemctl, sistem hizmetlerini yönetmek için kullanılan bir komut satırı yardımcı programıdır. Linux'ta hizmeti yönetmek için bir hizmeti başlatmak, durdurmak, etkinleştirmek ve devre dışı bırakmak gibi çeşitli seçeneklere sahiptir. Adı verilen başka bir seçenek daha var maske .

Bir systemd hizmetini maskelemek, hizmetin devre dışı bırakıldığı ve sistem tarafından veya manuel komutla bile etkinleştirilemeyeceği anlamına gelir. Maskeleme, devre dışı bırakmanın daha güçlü bir şeklidir.

Bu kılavuzda, Linux'ta systemctl kullanarak bir hizmetin nasıl maskeleneceği ve maskesinin nasıl kaldırılacağı konusunda size yol göstereceğim. Ayrıca maskeli hizmet ile engelli hizmeti arasındaki temel farklara da değineceğim.







Uyarı: Linux'ta hizmetler birbirine bağımlıdır. Hizmeti maskelemek hizmeti devre dışı bıraktığından ve herhangi bir aktivasyonu yasakladığından, hizmeti dikkatli kullanın.



Daha ileri gitmeden önce maskeli hizmetin arkasındaki mekanizmayı anlayalım.



Maskeli Hizmet Nedir?

Maskeli hizmet, sistem veya sistem yöneticisi tarafından etkinleştirilmesini engelleyen, kalıcı olarak devre dışı bırakılan bir hizmettir. Sistem yöneticileri genellikle maske Arızalı veya çakışan hizmetleri devre dışı bırakma seçeneği. Ancak önemli bir sistem hizmetini maskelemek sistemin başlatılmasında engeller oluşturabileceğinden bu seçeneğin dikkatli kullanılması önerilir.





Maskeli Hizmetler Nasıl Listelenir?

Linux'ta maskelenmiş hizmetleri listelemek için liste birimleri belirtilen durumun maskelendiği seçenek.

systemctl liste birimleri --durum =maskeli



Bir Hizmet Nasıl Maskelenir?

Systemctl komutu herhangi bir hizmeti maskelemek için kullanılabilir. maske seçenek. Komutun genel söz dizimi aşağıda belirtilmiştir.

sudo sistemctl maskesi [ Hizmet adı ]

Yukarıdaki söz dizimindeki maske seçeneği esas olarak hizmete sembolik bir bağlantı kurar. /etc/systemd/system .

Bir boşlukla ayrılmış olarak bir veya daha fazla hizmetten de bahsedilebilir.

Yukarıdaki sözdizimini kullanarak SSH hizmetini maskeleyelim.

sudo systemctl maskesi ssh.service

Maskeli bir hizmetin durumunu kontrol etmek için –durum= ile seçenek systemctl liste birimleri .

Hizmeti başlatmayı denediğinizde ünitenin maskelendiğini belirten bir çıktı alacaksınız.

Not: Oluşturulan bir hizmeti maskeleyemezsiniz. /etc/systemd/system dizin. Bu dizindeki hizmetler sistem işlemleri için gerekli olduğundan, bunların maskelenmesi normal sistem işlevselliğine zarar verebilir. Ancak bu hizmetleri devre dışı bırakmak, onları maskelemekle eşdeğerdir.

Bir Hizmeti Geçici Olarak Maskeleme

Bir hizmet bir sonraki önyüklemeye kadar maskelenebilir. -Çalışma süresi seçenek.

sudo sistemctl maskesi [ Hizmet adı ] --Çalışma süresi

Hizmetin sembolik bir bağlantısını oluşturur. /çalıştır/sistemd/sistem dizin. Hizmetin sembolik bağlantısı dizinde zaten mevcutsa, hizmet geçici olarak maskelenecek şekilde tasarlanmıştır.

Bir Hizmetin Maskesi Nasıl Kaldırılır

Systemctl komutunu aşağıdaki komutla kullanın: maskesini düşürmek maske kısıtlamalarını kaldırma seçeneği. Bu komut servisin yolunu kabul etmeyeceğinden sadece servis isimlerinin belirtilmesi gerekmektedir.

sudo systemctl maskesini kaldır [ Hizmet adı ]

Hizmetin maskesini kaldırdıktan sonra sistemi yeniden başlatmanız gerekebilir.

Maskeli Servis ile Engelli Servis Arasındaki Fark

Devre dışı bırakılan bir hizmet, sistem tarafından ve manuel komutlarla etkinleştirilebilir ve başlatılabilir. Ancak maskeli hizmet ne sistem tarafından ne de manuel müdahale ile etkinleştirilemez.

Bir hizmet devre dışı bırakıldığında, hizmette oluşturulan sembolik bir bağlantı /etc/systemd/system dizin kaldırılır ve hizmet önyükleme sırasında etkinleştirilmez. Ancak bağımlı hizmetler tarafından etkinleştirilebilir.

Öte yandan maskeli hizmet, /dev/null bu da onu kalıcı olarak kullanılamaz hale getirir.

Şunu unutmayın: /dev dizin blok cihazların dosyalarını içerir. /dev/null kendisine yazılan her şeyi silen sanal bir cihazdır. Genellikle stdout ve stderr'den çıktıyı atmak için kullanılır.

Çözüm

Herhangi bir hizmeti kalıcı olarak devre dışı bırakmak istiyorsanız systemctl mask komutunu kullanın. Maskeli bir hizmet sistem tarafından bile etkinleştirilemez. Bu kılavuzda bir hizmetin kalıcı ve geçici olarak nasıl maskeleneceğini anlattım. Ayrıca bir hizmetin maskesini kaldırma yönteminden ve maskeli hizmet ile engelli hizmet arasındaki temel farklardan da bahsettik.