跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Linux怎么查看系统启动项_Linux systemd-analyze命令【优化】

systemd-analyze blame 按耗时从高到低列出已成功启动的 unit,首项常为瓶颈;critical-chain 展示最长依赖路径定位卡点;plot 生成 SVG 时序图可视化并行与阻塞。 systemd-analyze blame 看哪些服务拖慢启动 开机慢,不是靠猜,是看谁真在后台卡着。直接运行
systemd-analyze blame
,它会按耗时从高到低列出所有已启动的 unit(主要是 .service),排第一的那个,八成就是瓶颈。 注意:只显示「已成功启动」的服务;失败或跳过的不会出现。如果某个服务明明该启却没启,它不会出现在列表里,别误以为它不重要。 加
--no-pager
避免卡在 less 里:
systemd-analyze blame --no-pager
想看前 10 个最慢的?用
systemd-analyze blame | head -n 10
某些服务启动时间含“随机延迟”(比如
RandomDelaySec=
),实际每次启动可能波动较大,别单看一次结果就下结论 systemd-analyze critical-chain 定位启动依赖链路 一个服务慢,未必是它自己写得差,可能是它等的上游太慢。用
systemd-analyze critical-chain
能打出从
default.target
到最终目标(比如
multi-user.target
)之间最耗时的那条依赖路径。 输出里每行是一个 unit,时间是它自身启动耗时(不含依赖项),箭头方向是依赖关系。关键看链条顶端那个单位——如果它是
NetworkManager-wait-online.service
,大概率是网络没通导致卡住。 可指定具体服务查它的关键路径:
systemd-analyze critical-chain sshd.service
若某 service 显示
not found
,说明它根本没被加载(可能被 masked、disabled 或配置文件缺失) 注意
critical-chain
不等于完整依赖图,它只取“最长路径”,其他并行分支不会展开 systemd-analyze plot 生成启动时序 SVG 图 文字看不清依赖重叠和并行程度?
systemd-analyze plot
输出一个 SVG,横轴是时间,每行是一个 unit,颜色区分状态(绿色=成功,红色=失败),能一眼看出哪些服务在抢资源、哪些被堵死。 CentOS Linux 7.9.2009 CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。 下载 适合发给同事快速对齐问题,也方便存档比对优化前后差异。但别直接在终端里打开——它输出的是 XML 内容,要重定向保存再用浏览器打开。 保存为文件:
systemd-analyze plot > boot.svg
浏览器打开
boot.svg
即可查看交互式图表 如果输出为空或报错
Failed to get unit properties: Connection timed out
,说明 systemd-journald 没跑稳,先
systemctl restart systemd-journald
再试 禁用非必要服务前先确认依赖和用途 看到某个 service 耗时长就想
systemctl disable
?小心踩坑。很多服务看似无关,实则被其他 unit 依赖(比如
ModemManager
可能被
NetworkManager
Requires),盲目禁用会导致网络或登录失败。 真正安全的操作顺序是:先查依赖 → 再查是否真被使用 → 最后决定禁用还是 mask。 查谁依赖它:
systemctl list-dependencies --reverse --type=service xxx.service
查它依赖谁:
systemctl list-dependencies --type=service xxx.service
确认当前没在用:
systemctl is-active xxx.service
(返回 inactive 才算空闲) 禁用 ≠ 删除;如需彻底阻止启动,用
systemctl mask xxx.service
(但恢复麻烦,慎用) 系统启动项不是越少越好,而是“该等的等,不该等的不等”。依赖关系和实际用途比启动耗时数字更关键。

相关文章