linux中systemd本身不生成开机执行图表,需借助外部工具:1.用systemd-analyze dot配合graphviz生成依赖树图;2.用systemd-analyze plot输出svg时间线图;3.导出dot格式供专业工具进一步可视化。

Linux 中 systemd 本身不生成“开机执行图表”,它没有内置的可视化绘图功能。你提到的“开机执行图表”,通常是指 系统启动过程中各服务的依赖关系、启动顺序、耗时分布等结构化信息的图形化呈现,这类图表需借助外部工具分析 systemd 日志或单元状态后生成。
下面分三类说明如何获得并生成这类图表:
1. 查看启动流程的文本拓扑(基础依赖视图)
用 systemd-analyze 命令可导出服务依赖树,这是生成图表的原始数据基础:
# 查看启动依赖树(按字母排序) systemd-analyze dot | dot -Tpng > startup-tree.png # 只显示关键路径(最长依赖链) systemd-analyze critical-chain # 显示每个单元启动耗时(含时间轴) systemd-analyze blame
⚠️ 注意:dot 是 Graphviz 工具链中的命令,需提前安装:
# Ubuntu/Debian sudo apt install graphviz # CentOS/RHEL/Rocky sudo dnf install graphviz
2. 生成可视化的启动时间图(火焰图/甘特图风格)
systemd-analyze plot 可输出 SVG 格式的时间线图表,直观展示每个服务的启动起止时刻与持续时间:
跨平台系统监控工具,支持 Linux 和 Windows,监控硬盘、内存、CPU 使用情况,记录历史数据,支持变化对比和预警。**适合定时任务**。触发场景:(1) 定时系统健康检查(推荐每6小时),(2) 用户询问系统状态、资源使用情况,(3) 资源异常预警,(4) 查看历史监控数据对比。
systemd-analyze plot > boot-timeline.svg
该 SVG 文件可用浏览器直接打开,支持缩放、悬停查看服务名和耗时。它是纯时间维度的横向甘特图,无需额外渲染。
✅ 优点:原生支持、零配置、准确反映真实启动行为。
3. 导出依赖关系供专业工具绘图
如需更高级图表(例如交互式网络图、分层架构图),可导出 DOT 格式后用其他工具处理:
# 导出完整依赖图(含所有单元,可能很大) systemd-analyze dot > full-dependencies.dot # 过滤只保留 active 的服务(减小规模) systemd-analyze dot 'multi-user.target' | grep -E '->|^\s*[a-zA-Z0-9._-]+\.service' > filtered.dot
之后可用以下方式进一步处理:
- 用 Graphviz Online 粘贴 DOT 内容实时渲染;
- 用 Python +
graphviz库自定义样式(如高亮你的服务、着色失败单元); - 导入 yEd、Cytoscape 等专业图分析软件做布局优化。
不需要写脚本、不依赖桌面环境,只要 systemd 正常运行,上述命令在任意现代发行版(Ubuntu 16.04+、CentOS 7+、Debian 9+)中均可立即使用。










