Назад | Перейти на главную страницу

Как узнать, нужно ли запускать systemctl daemon-reload

Есть ли способ узнать, что текущая текущая конфигурация устарела? Есть ли способ просмотреть текущую работающую конфигурацию и сравнить ее с файлом?

Для устранения неполадок было бы полезно знать текущую конфигурацию перед запуском перезагрузки. Также полезно, если команда сообщит мне, действительно ли она обновила конфигурацию.

Проверить загруженный блок можно командой systemctl show <unit>.service. Насколько я знаю, нет инструмента для проверки изменений в файлах модулей.

Также вы можете запустить эту команду bash for var in $(systemctl | grep running | awk '{print $1}'); do systemctl status $var | grep "changed on disk" | grep ".service"; done он покажет, какие файлы были изменены.

Пример:

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

systemd не предоставляет готовую поддержку для отображения измененных файлов модулей, но вы можете использовать такой сценарий bash:

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}')