Por que alguns serviços systemd estão no estado "mascarado"?

17

Quando executo o comando sudo systemctl list-unit-files (acho que o sudo é opcional), recebo uma saída que mostra todos os serviços e seu estado.

Aqui está um trecho da minha máquina:

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
...

Eu me pergunto por que alguns serviços estão no estado "mascarado". Eu acho que isso significa, "isso é melhor que 'desabilitar', porque o serviço não pode ser iniciado, nem manualmente ou pelo systemd".

Como posso obter mais informações sobre o estado de uma unidade de serviço?

Quem colocou as unidades em seus respectivos estados?

Eu tentei, por exemplo, sudo systemctl help dsmcad - que só traz a linha documentation = ... do arquivo da unidade. /etc/systemd/system/dsmcad.service

Nota: Aqui eu sei exatamente que serviço dsmcad é e o que ele faz, eu mesmo instalei. Estou mais interessado em uma solução geral.

    
por knb 17.12.2015 / 09:42

2 respostas

21

mask é uma versão mais strong de disable . Usando disable todos os links simbólicos do arquivo de unidade especificado são removidos. Se usar mask , as unidades serão vinculadas a /dev/null . Isso será exibido se você verificar, e. por systemctl status halt.service . A vantagem de mask é evitar qualquer tipo de ativação, mesmo manual.

Cuidado: systemctl list-unit-files está listando o estado da unidade arquivos (estática, ativada, desativada, mascarada, indireta) e não tem nada a ver com o estado do serviço. Para ver os serviços , use systemctl list-units .

    
por Kellerspeicher 09.02.2016 / 17:12
2

hostname.service é mascarado como redundante porque systemd define o nome do host (de / etc / hostname) muito cedo durante a inicialização.

Esta configuração é fornecida pelo pacote systemd do Debian.

$ 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

Da mesma forma, o Debian agora pode ser executado sem um script de shell para halt do sistema, ele é tratado por systemd -shutdown (código-fonte aqui ).

Se um serviço foi mascarado manualmente, a máscara será instalada em /etc/systemd/system .

Os serviços também são mascarados quando eles são removidos no Debian / Ubuntu . Eu não sei porque.

    
por sourcejedi 07.06.2017 / 16:57

Tags