首页/系统/信创系统运维速查/单元依赖与启动顺序
服务与运维65 条

单元依赖与启动顺序

systemd 用 Wants/Requires 表达依赖、After/Before 表达顺序:依赖决定拉不拉、顺序决定先后。排查启动链问题用 list-dependencies 与关键链分析。

信创系统运维速查系统更新于 2026-10-12

查看依赖

查看依赖
systemctl list-dependencies myapp.service
systemctl list-dependencies --reverse myapp.service
systemctl show myapp -p Wants -p Requires -p After -p Before

四个关键键对照

键含义目标失败时
Wants弱依赖:尝试拉起目标单元不阻塞自己
Requires强依赖:目标必须成功自己不启动
After仅先后顺序,不产生依赖无影响
Before反向顺序控制无影响
After/Before 只管顺序不管依赖;'网络就绪后再启动'要写成 Wants=network-online.target 加 After=network-online.target。

易错点

  • 只写 After=network-online.target 不会把目标拉起来,缺 Wants/Requires 是半配置
  • 依赖链出现环时启动报 Transaction order is cyclic,用 list-dependencies 逐层找环

数据来源与参考

  • man 5 systemd.unit(Wants/Requires/After/Before)
  • 红帽系统管理指南(systemd 依赖)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌