systemd 服务文件改完不生效怎么办?先 daemon-reload

systemd daemon-reload 操作示意图

在服务器上改了一个 .service 文件,比如调整 ExecStartEnvironment 或依赖关系,保存后直接 restart,有时还是按旧配置跑,甚至提示 unit 文件已经变化。

这种情况先别反复重启服务。更常见的原因是 systemd 还没有重新读取 unit 文件。

先执行:

sudo systemctl daemon-reload

然后再重启对应服务:

sudo systemctl restart your-service.service

最后看一下状态,确认有没有加载失败或启动错误:

sudo systemctl status your-service.service

如果改的是当前用户自己的服务,不是系统服务,命令要加 --user

systemctl --user daemon-reload
systemctl --user restart your-service.service

systemd 官方 systemctl 手册说明,daemon-reload 会重新加载 systemd 管理器配置,重新读取所有 unit 文件,并重建依赖树。参考:systemctl daemon-reload 文档

最后提醒两点:第一,daemon-reload 只让 systemd 重新认识 unit 文件,不会替你重启正在运行的服务;第二,如果文件语法写错,先看 systemctl statusjournalctl -u your-service.service 的报错,不要只盯着 reload 命令本身。

Caleb
Caleb管理员

上一篇:Windows 开机慢怎么办?先关掉启动应用
下一篇:已是最新的文章

留言评论

暂无留言
请先 登录 再评论,若不是会员请先 注册
取消
扫码支持