How do I know if systemctl daemon-reload needs to be run
You can check loaded unit by command systemctl show <unit>.service
. As far I know there is no tool to check changes in unit files.
As well you could run this bash command for var in $(systemctl | grep running | awk '{print $1}'); do systemctl status $var | grep "changed on disk" | grep ".service"; done
it would show what files has been changed.
Example:
[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.