有什么方法可以在加载的 linux "in-the-order-of" 中列出 systemd 服务吗?

Is there any way to list systemd services in linux "in-the-order-of" they were loaded?

我想了解我的新项目中不同系统服务之间的依赖关系。我们正在使用 yocto 构建系统和 systemd/system 服务。

如果我表演,

systemctl -l

它将按字母顺序列出所有服务。但我专门寻找任何可用于列出已加载的 systemd 服务 "in-the-order-of" 的 commands/scripts。

请帮忙。

不幸的是,由于启动过程的并行性质和服务之间潜在的复杂依赖关系,服务启动顺序不是很确定。然而,systemd-analyze,如果存在于您的系统中,可以图形化地绘制服务的启动顺序:

systemd-analyze plot > startup_order.svg

它也可用于以图形方式绘制服务依赖关系:

systemd-analyze dot | dot -Tsvg > systemd.svg

@shibley 的 systemd-analyze 小费很棒。在此处添加其他有用的 systemd-analyze 命令,因为我还不能评论...

  1. 查找对启动时间影响最大​​的服务:

    systemd-analyze blame
    
  2. 在具有时序影响的服务依赖项的终端中打印一棵树

    systemd-analyze critical-chain