systemd进程CPU占用率超150%,登录访客账户恢复正常求助
解决systemd在主账户高CPU占用的问题
看起来你遇到了个挺头疼的问题:主账户下systemd突然占150%CPU,温度飙到接近100℃,但访客账户却一切正常。这大概率是主用户的systemd配置、用户服务或者启动项出了问题,给你整理了几个一步步排查的方法:
1. 先定位到底是哪个systemd子进程在吃CPU
systemd本身是父进程,高负载通常是某个子服务搞的鬼。打开终端,运行下面的命令,能看到具体的进程详情:
top -c -p $(pgrep systemd)
或者用更简洁的方式筛选:
ps aux | grep systemd | grep -v grep
找到CPU占用高的那个子进程,记下来它的服务名或进程名,这是排查的关键。
2. 检查用户级systemd服务的状态
每个用户都有独立的systemd服务实例,可能是某个服务崩溃后循环重启导致的高CPU。运行:
systemctl --user list-units --failed
如果看到有标记为failed的服务,先尝试重启它:
systemctl --user restart [服务名]
要是重启后还是不行,临时禁用这个服务再测试:
systemctl --user disable [服务名]
3. 清理可疑的登录启动项
第三方软件的登录启动项经常会搞出这种问题:
- 打开「系统偏好设置」→「用户与群组」→ 选中你的主账户→「登录项」,把那些你不常用或者最近刚安装的软件从列表里移除,然后重启电脑试试。
- 另外,用户级的启动脚本都存在
~/Library/LaunchAgents目录下,打开这个文件夹,看看有没有陌生的.plist文件,先备份到桌面,然后删除可疑文件,再重启。
4. 重置用户的systemd配置
如果用户级的systemd环境已经混乱,可以尝试重置它:
先退出当前用户的systemd实例:
systemctl --user exit
然后备份并删除用户的systemd配置目录(放心,重启后会自动生成默认配置):
mv ~/.config/systemd/user ~/.config/systemd/user.bak mv ~/.local/share/systemd/user ~/.local/share/systemd/user.bak
重启后登录主账户,看看systemd的CPU占用是否恢复正常。
5. 查看日志找问题根源
日志能帮你发现肉眼看不到的错误,运行下面的命令实时查看用户级systemd日志:
journalctl --user -f
操作电脑触发高CPU时,看看日志里有没有报错、循环重启的信息,这些线索能直接帮你定位问题。
6. 测试新管理员账户
如果上面的方法都没解决,建议创建一个新的管理员账户,登录后观察systemd的CPU占用。如果新账户正常,说明问题确实在原主账户的配置文件里,你可以逐步把原账户的文件(文档、图片等)迁移到新账户,同时排查哪个迁移步骤导致问题重现。
内容的提问来源于stack exchange,提问作者Zac
相关产品推荐
相关产品推荐

