您可以通过命令检查加载的单元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.
您可以通过命令检查加载的单元
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
,它会显示哪些文件已更改。例子:
systemd
不提供对显示更改的单元文件的开箱即用支持,但您可以使用这样的 bash 脚本:如果需要运行,此行将执行 systemctl daemon-reload:
这对我有用:
或者
如果需要重新加载,它将输出“NeedDaemonReload=yes”。
如果您使用 grep 方法,您可以将最后一部分更改为
grep NeedDaemonReload=yes
或grep NeedDaemonReload=no
使其在不匹配时不输出任何内容(更易于用于脚本编写)。您可能还想用
CanStart