1、前言
systemctl daemon-reload 会让 systemd 管理器(PID 1)重新扫描磁盘上的 unit 文件(.service/.socket/.timer 等)及其 drop-in 配置,重新加载内部的单元描述(unit files)缓存和依赖关系表。
2、内容
简单说:告诉 systemd “我修改/新增/删除了 unit 文件,请重新读取这些文件并更新内部状态”。
其典型使用场景有如下几个:
- 你手动编辑或新建了
systemd单元文件(通常位于/etc/systemd/system、/run/systemd/system、/lib/systemd/system或/usr/lib/systemd/system),或在这些目录下新增/删除.service/.timer等文件或其.d/drop-in目录后。 - 安装/卸载某个软件包时其提供的 unit 文件被放置到了上述目录(有时安装脚本会自动调用 reload,但并非总是)。
- 为用户服务修改了
~/.config/systemd/user/下的 unit 文件时,需对用户管理器执行--user模式的daemon-reload。
常见命令示例
全局(系统)管理器重新加载:
sudo systemctl daemon-reload
用户管理器重新加载(针对 --user 单元):
systemctl --user daemon-reload