como sei se o daemon-reload do systemctl precisa ser executado

3

Existe uma maneira de saber que a configuração atual em execução está desatualizada? Existe uma maneira de visualizar a configuração atual em execução e compará-lo ao arquivo?

Seria importante para a solução de problemas saber qual era a configuração em execução antes de executar o recarregamento. Também valioso se o comando me dissesse se realmente atualizou a configuração.

    
por red888 10.06.2017 / 18:18

2 respostas

3

Você pode verificar a unidade carregada pelo comando systemctl show <unit>.service . Até onde sei, não há ferramenta para verificar as alterações nos arquivos da unidade.

Além disso, você poderia executar este comando bash for var in $(systemctl | grep running | awk '{print $1}'); do systemctl status $var | grep "changed on disk" | grep ".service"; done mostraria quais arquivos foram alterados.

Exemplo:

[root@centos-linux atolkachev]# for var in $(systemctl | grep running | awk '{print $1}'); do systemctl status $var | grep "changed on disk" | grep ".service"; done
Warning: nginx.service changed on disk. Run 'systemctl daemon-reload' to reload units.
    
por 10.06.2017 / 19:10
1

systemd não oferece suporte pronto para exibir arquivos de unidade alterados, mas você pode usar um script bash como este:

while read unit; do
    systemctl status $unit 2>&1 | awk '/changed on disk/ {print $2}'
done< <(systemctl list-unit-files | grep \.service | awk '{print $1}')
    
por 06.10.2017 / 01:01