首页/系统/Linux 运维命令速查/systemd 单元文件存放路径
systemd 与服务42 条

systemd 单元文件存放路径

单元文件按优先级生效:/etc/systemd/system > /run/systemd/system > /usr/lib/systemd/system;自建服务放 /etc 下最稳。

Linux 运维命令速查系统更新于 2026-10-13

systemd 单元文件存放路径是什么

systemd 加载单元文件时按目录优先级覆盖:管理员目录优先级最高,其次是运行期目录,最后是发行版包安装的目录。同名单元存在多个位置时,只有优先级最高的那份生效。理解这条规则的关键在于:要定制一个包自带的单元,不要直接改包安装目录下的文件,因为包升级会把它覆盖掉;正确做法是放到管理员目录下或使用覆盖目录。

基本信息

适用平台使用 systemd 的 GNU/Linux
优先级顺序/etc/systemd/system 高于 /run/systemd/system 高于 /usr/lib/systemd/system
自建单元放在 /etc/systemd/system 下最稳
包安装单元位于 /usr/lib/systemd/system,不应直接修改
查生效文件systemctl show -p FragmentPath 单元名
改完动作执行 systemctl daemon-reload 再重启服务

典型使用场景

  • 确认某个服务最终使用的是哪个单元文件,排查改了却没生效。
  • 新建自建服务单元,放到优先级最高且不会被升级覆盖的位置。
  • 定制包自带服务的行为:先备份再覆盖,或改用覆盖目录。
  • 梳理机器上同名单元的多份文件,弄清哪一份真正生效。
  • 升级后服务行为变化时,排查是否被包管理器的单元覆盖。

常用写法

常用写法
ls -l /etc/systemd/system/ | head                    # 自建与覆盖的单元
ls /usr/lib/systemd/system/ | wc -l                  # 包安装的单元数量
systemctl show -p FragmentPath myapp                 # 查看实际生效的单元文件
systemctl cat myapp                                  # 打印生效内容与全部覆盖片段
systemctl daemon-reload                              # 改完单元后重新加载
systemctl list-unit-files --state=enabled | head     # 已启用的单元清单
find /etc/systemd /run/systemd /usr/lib/systemd -name 'nginx.service'   # 同名单元分布

路径与命令读法

路径或命令含义使用要点
/etc/systemd/system管理员单元目录,优先级最高自建与覆盖都放这里
/run/systemd/system运行期生成,重启即消失临时调试使用
/usr/lib/systemd/system包管理器安装位置不要直接改,升级会被覆盖
show -p FragmentPath查询生效文件路径判断哪个文件真正生效
systemctl cat打印内容加覆盖片段排障时一步看到全部叠加
daemon-reload重新加载单元定义改完必须执行才生效
判断哪个文件生效不要靠猜:查询实际生效的单元路径或直接打印单元内容,会连带显示所有叠加的覆盖片段,排查时最省时间。
想保留包自带单元并在其基础上定制,优先用覆盖目录而不是替换整个文件,这样包升级带来的一般性改进仍然会生效。
修改单元文件后必须重新加载才生效:只重启服务不会重新读取磁盘上的单元定义,验证前先确认已经加载过。

易错点

  • 直接修改包管理器安装的单元文件,系统升级后被还原,改动凭空消失;应改为在管理员目录里覆盖或使用覆盖目录。
  • 改了单元文件却忘记重新加载,用旧定义重启服务,误以为改动无效。
  • 机器上存在多个同名单元文件,排查时看错了那一份,结论完全相反;要先确认实际生效的路径。
  • 把自建单元放在运行期目录等会被覆盖的位置,重启后行为不一致;自建单元固定放在管理员目录。

数据来源与参考

  • man 5 systemd.unit(Unit 文件加载路径)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌