systemD Estado da unidade carregada vs. habilitada

3

Pergunta apenas por curiosidade.

De acordo com o RHEL7 System Administration Guide ( link )

O seguinte comando deve listar todas as unidades carregadas

systemctl list-units --type service --all

Mas, na verdade, não lista todos os serviços carregados, apenas aqueles que estão ativados OU ativos OU (ativos e ativados).

Por exemplo:

[root@roman-centos system]# systemctl list-units --type service --all | grep httpd
[root@roman-centos system]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)

É assim que deve ser ou pode ser um bug de documentação / código?

    
por Roman_T 11.01.2017 / 00:22

2 respostas

1

"Loaded" significa que o systemd leu a unidade do disco na memória. Isso acontecerá sempre que você "olhar" para a unidade, por exemplo com status, quando a unidade é iniciada ou quando a unidade é uma dependência de outra unidade que está carregada.

O equívoco aqui é que 'systemctl status' irá sempre mostrar a unidade como "carregada", porque o systemd carrega a unidade para exibir o status. Se a unidade não for necessária para mais nada, ela será descarregada imediatamente após.

Se você quiser exibir uma lista de todas as unidades possíveis encontradas no disco, use 'systemctl list-unit-files'.

    
por 12.01.2017 / 15:41
0

Os documentos oficiais para systemctl não seriam os documentos da Red Hat, mas man systemctl . De acordo com man systemctl :

'--type service' should "limit the output to only services."
'--all' should "how all loaded units, regardless of their state, including inactive units. "

Portanto, o comando que você forneceu deve listar todas as unidades serviço carregadas, independentemente de seu estado, incluindo as unidades inativas.

Teste no Ubuntu 16.04 com systemd versão 229, reproduzi o problema com unidades carregadas, mas não desabilitadas, não sendo relatadas na saída, o que corresponde ao comportamento documentado.

Como o comportamento corresponde à documentação, isso parece ser um bug no systemd. Eu abri um relatório de bug com o systemd sobre esse problema.

    
por 11.01.2017 / 01:51

Tags