web-dev-qa-db-fra.com

Pourquoi certains services systemd sont-ils dans l'état "masqué"?

Lorsque j'exécute la commande Sudo systemctl list-unit-files (je pense que le Sudo est facultatif), je reçois une sortie qui affiche tous les services et leur état.

Voici un extrait de ma machine:

UNIT FILE                                  STATE
...
debian-fixup.service                       static  
debug-Shell.service                        disabled
display-manager.service                    enabled 
dns-clean.service                          enabled 
dsmcad.service                             enabled 
emergency.service                          static  
failsafe-x.service                         static  
friendly-recovery.service                  masked  
Fuse.service                               masked  
gdm.service                                masked  
getty-static.service                       static  
[email protected]                             enabled 
gpsd.service                               indirect
[email protected]                           static  
gpu-manager.service                        enabled 
halt-local.service                         static  
halt.service                               masked  
hostname.service                           masked
...

Je me demande pourquoi certains services sont dans l'état "masqué". Je pense que cela signifie "c'est mieux que de" désactiver ", car le service ne peut pas être démarré, ni manuellement ni par systemd".

Comment puis-je obtenir plus d'informations sur l'état d'une unité de service?

Qui a mis les unités dans leur état respectif?

J'ai essayé, par exemple, Sudo systemctl help dsmcad - qui n'affiche que la ligne documentation = ... du fichier d'unité. /etc/systemd/system/dsmcad.service

Remarque: je connais exactement ce qu'est le service dsmcad et ce qu'il fait, je l'ai installé moi-même. Je suis plus intéressé par une solution générale.

34
knb

mask est une version plus puissante de disable. Avec disable, tous les liens symboliques du fichier unité spécifié sont supprimés. Si vous utilisez mask, les unités seront liées à /dev/null. Ceci sera affiché si vous cochez, par exemple, par systemctl status halt.service. mask présente l’avantage d’empêcher tout type d’activation, même manuelle.

Attention: systemctl list-unit-files répertorie l'état de l'unité fichiers (statique, activé, désactivé, masqué, indirect) et n'a rien à voir avec l'état du service. Pour jeter un oeil sur le services, utilisez systemctl list-units.

38
Kellerspeicher

hostname.service est masqué comme redondant car systemd définit le nom d'hôte (à partir de/etc/hostname) très tôt au démarrage.

Ce paramètre est fourni par le paquet Debian systemd.

$ ls -l /lib/systemd/system/hostname.service
lrwxrwxrwx 1 root root 9 Apr  8 22:47 /lib/systemd/system/hostname.service -> /dev/null
$ dpkg-query --search /lib/systemd/system/hostname.service
systemd: /lib/systemd/system/hostname.service

De même, Debian peut maintenant fonctionner sans script Shell sur halt du système, elle est gérée par systemd-shutdown (code source ici ).

Si un service a été masqué manuellement, le masque sera installé dans /etc/systemd/system à la place.

Les services sont également masqués quand ils sont supprimés sur Debian/Ubunt . Je ne sais pas pourquoi.

3
sourcejedi