ubuntu系统使用感觉挻流畅,舒服这是给我第一印象。但是有时候关机会屏幕到logo时转圈圈等好久。这严重影响到我的使用感。于是就想从根本上找找是什么原因导致的。
系统开机、关机为何慢?
首先要找出是哪里慢,再是为何慢?
ubuntu系统中有一利器,查看系统关机时长,最标准、准确的方法是使用 systemd-analyze 工具,它既能查看开机时间,也能查看关机时间。
此外,还可以通过查看系统日志来精准排查关机卡顿的具体原因。以下是三种常用方法:
方法一:查看关机 / 重启历史(最直观)
使用 last 命令可以查看系统过去的关机、重启和登录记录,能直接看到每一次关机的耗时。
在终端输入:
last -x shutdown reboot
解读输出:
- 第一列是用户名(通常是
shutdown或reboot)。 - 第二列是事件类型(
shutdown表示关机,reboot表示重启)。 - 第三列是时间和日期。
- 最后一列是持续时长(例如
shutdown - 00:01表示关机耗时 1 分钟)。
方法二:分析关机过程(精准排查卡顿)
使用 systemd-analyze 分析关机过程,能定位到是哪个服务或进程导致了关机耗时过长。
Ubuntu20.04在终端输入:
systemd-analyze blame --shutdown
解读输出:
- 该命令会列出关机过程中所有服务的执行时间。
- 耗时最长的服务排在前面,你可以重点关注那些耗时超过 1 秒的服务。
- 结合我们之前的讨论,如果
systemd-homed.service或snapd.service(即使已卸载,残留配置可能仍有影响)出现在列表中且耗时很长,就可以针对性处理。
ubuntu22.04在终端输入:
# 查看上一次关机的详细耗时分析
systemd-analyze plot > shutdown-plot.svg
执行后会在当前目录生成 shutdown-plot.svg 文件,双击打开这个文件:

- 图表横轴是时间(秒),纵轴是各个服务。
- 找到标注
shutdown.target的区域,能清晰看到从触发关机到完全断电的总时长。 - 重点看颜色较深、耗时较长的服务块,这些就是导致关机卡顿的元凶。
方法三:查看系统日志(深入排查)
通过查看系统日志,可以获取关机过程的详细信息,帮助排查具体卡顿原因。
在终端输入:
journalctl -b -1 -e
# 查看上一次关机的核心日志(重点看超时/等待信息)
journalctl -b -1 | grep -E 'shutdown|Power-Off|Timeout|homed'
参数说明:
-b -1:查看上一次启动之前的系统日志(即上一次关机 / 重启的日志)。-e:直接跳到日志文件的末尾,快速定位关机相关的最后几行信息。
关键查找:
- 搜索关键词
Timeout:如果看到Timeout stopping service,后面跟着的服务名就是卡顿根源。 - 搜索关键词
systemd-homed:如果有Waiting for process等字样,就是这个服务在拖慢关机。
如果日志里查到 systemd-homed 或其他服务超时,执行以下命令彻底解决:
# 彻底禁用所有可能导致关机卡顿的服务
sudo systemctl mask systemd-homed.service
sudo systemctl mask NetworkManager-wait-online.service
# 清理关机残留进程
sudo rm -rf /run/user/* /var/run/user/*
总结推荐
- 想快速了解历史关机时长:用
last -x shutdown reboot。 - 想排查当前关机卡顿原因:用
systemd-analyze blame --shutdown。 - 想深入分析关机过程细节:用
journalctl -b -1 -e。