systemd-delta 可直接列出所有被覆盖、屏蔽、重定向或扩展的 systemd 单元及 .d 片段,并显示差异;默认扫描 /etc、/run、/usr/lib,支持按服务、路径、类型过滤,以及禁用分页和 diff 以适配脚本。

直接用 systemd-delta 就能列出所有被覆盖的默认配置单元,并显示它们与原始配置的差异。它专为识别配置漂移而设计,不需要额外工具或手动比对。
查看全部被覆盖的单元和片段
运行不带参数的命令,会扫描 /etc、/run、/usr/lib 三个目录层级,找出所有因路径优先级导致的覆盖关系:
-
systemd-delta—— 显示所有被覆盖、被屏蔽、被重定向或扩展的单元文件及.d片段 - 输出中每项会标明类型(如 overridden 表示内容不同、masked 表示被禁用)和来源路径
- 默认同时显示两个文件的 diff 内容,便于快速定位修改点
聚焦特定服务或配置类型
缩小范围可提高排查效率,例如只看 httpd.service 的覆盖情况:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
systemd-delta httpd.service—— 仅检查该服务单元是否被/etc/systemd/system/httpd.service覆盖 -
systemd-delta /etc systemd/system—— 只查/etc下的 systemd 单元覆盖(排除/run和/usr/lib) -
systemd-delta --type=overridden,extended—— 仅列出内容被修改或通过.d目录扩展的项
简化输出与避免分页干扰
在脚本或远程终端中使用时,建议关闭分页并控制格式:
-
systemd-delta --no-pager --plain nginx.service—— 纯文本输出,适合管道处理或日志记录 -
systemd-delta --diff=no sshd.service—— 隐藏 diff,只显示哪些文件存在覆盖关系 - 搭配
grep快速筛选:systemd-delta | grep overridden
结合其他命令确认实际生效配置
systemd-delta 揭示的是“有哪些覆盖”,但最终生效的是合并后的结果。验证时可配合:
-
systemctl cat nginx.service—— 查看当前实际加载的完整单元内容(含.d片段) -
systemd-analyze verify /etc/systemd/system/nginx.service—— 检查自定义单元语法是否合法 -
systemctl show --property=FragmentPath nginx.service—— 确认主单元文件路径,判断是否已被替换

















