Eğer bir servis varsa enabled
, o zaman bir yerde bir sembolik bağlantı var.
/etc/systemd/system
Birim dosyasına, genellikle
/lib/systemd/system
Faydalı bir şekilde, enable
bir hizmet olduğunda , oluşturulan bağlantının ve hedefin tam yolları stdout'a yazdırılır.
Hizmetin devre dışı bırakılması sembolik bağlantıyı siler, böylece birim dosyası etkilenmez, ancak sistem okuduğunda servis bir sonraki önyüklemede yüklenmez /etc/systemd/system
.
Ancak, özürlü hizmet edebilir yüklenecek ve başlatılacaktır buna bağlı bir hizmeti başlatılmışsa ; enable
ve disable
yalnızca üniteler için otomatik başlatma davranışını yapılandırır ve durum kolayca geçersiz kılınır.
Bir maskeli hizmet olan birim dosyası işaret eden bir sembolik olandır /dev/null
. Bu, başka bir etkin servis için gerekli olsa bile servisi yüklemek için "imkansız" hale getirir.
Ne zaman mask
bir hizmet, bir sembolik oluşturulur /etc/systemd/system
için /dev/null
başka yerde el değmemiş orijinal birim dosyası bırakarak. Bir unmask
servis yaptığınızda sembolik bağlantı silinir.
Ancak, bu komutların her zaman onurlandırılmadığını fark ettim.
Çoğu hizmeti maskelemeye çalıştığımda, başarısız oluyor:
$ sudo systemctl mask bluetooth.service
Failed to execute operation: Invalid argument
Tabii ki önce servisi durdurdum. @Anwar, maskelemenin sadece kritik olmayan servisler için mümkün olduğunu öne sürüyor.
Maskeli bir servisi maskeden çıkarma, kendim maskelemediğim sürece de (sessizce) başarısız olur. Bunun , şu anda aşağıdakilere bir işaret bağlantısı dışında, hiçbir yerde hizmet için bir birim dosyası olmadığına inanıyorum :/dev/null
/lib/systemd/system
$ file $(locate fuse.service)
/lib/systemd/system/fuse.service: symbolic link to /dev/null
$ sudo systemctl unmask fuse.service
$ systemctl status fuse
● fuse.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
Bu sorunu yaşayan sadece ben değilim
Aslında x11 ortak maskeli hizmetin maskesini kaldırmak için, /dev/null
ve sembolik bağlantıyı silmek zorunda kaldı sudo apt-get install --reinstall x11-common && sudo systemctl daemon-reload
. Şimdi sorguladığımda systemctl status x11-common
, servisin güzel yeşil bir çembere sahip olduğunu ve birim dosyası olmamasına rağmen yüklü ve aktif olduğunu görüyorum (çıkıldı).
Daha fazla başvuru için, Systemctl Nasıl Kullanılır başlıklı makalede biraz kullanım olabilir.