Ubuntu 26.04 登录循环修复:systemd 用户服务故障排查指南
当 GNOME/Wayland 被自建服务拖挂时,如何用辅助账号救出主账户

环境:Ubuntu 26.04 + GNOME + Wayland,NVIDIA 显卡,双显示器
问题:
- 原本是启动卡顿,后来演变为"登录循环":输入密码后直接返回登录界面,无法进入桌面;
- 与大量挂在
~/.config/systemd/user的自建服务有关。
这一篇重点讲:当用户账号进入登录循环时,如何用辅助账号 + user-level systemd 备份的方式,把主账号从"死循环"中救出。如需了解排查定位过程,可参考 [[Ubuntu 26.04 桌面启动卡顿、登录循环完整排查实录]]。
一、症状:登录循环
具体表现:
- 在图形登录界面输入主账号
oklife的密码; - 屏幕闪一下后又回到登录界面;
- 连续多次都是这样——典型的 GNOME/Wayland 用户会话无法正常启动。
二、第一步:确认系统没坏,问题只在账号
2.1 使用 TTY 创建辅助账号
在登录界面:
- 按
Ctrl + Alt + F3进入 TTY; - 用
oklife登录。
创建辅助账号(例如 yuntian):
sudo adduser yuntian
sudo usermod -aG sudo yuntian2.2 用辅助账号登录桌面
回到图形登录界面(Ctrl + Alt + F1/F2),使用 yuntian 登录:
- 如果能够正常进入 GNOME 桌面,说明系统本身没有坏,问题集中在
oklife这个账号的配置; - 这是一个非常重要的分界点:不用重装系统,只修用户配置。
三、第二步:查看主账号的用户级 systemd 服务
在 yuntian 桌面,打开终端,查看主账号的 user-level systemd 配置:
sudo ls -R /home/oklife/.config/systemd/user你可能会看到类似:
/home/oklife/.config/systemd/user:
chrome-debug.service
hermes-gateway.service
openclaw-gateway.service
socks2http.service
default.target.wants
graphical-session.target.wants
...
/home/oklife/.config/systemd/user/default.target.wants:
chrome-debug.service
hermes-gateway.service
openclaw-gateway.service
snap.prompting-client.daemon.service
snap.snapd-desktop-integration.snapd-desktop-integration.service
/home/oklife/.config/systemd/user/graphical-session.target.wants:
warp-taskbar.service这表明:
- 主账号
oklife在登录时自动启动了大量用户级服务:headless Chrome、网关服务、代理服务、Snap 集成等; - 任何一个服务写得不稳、或与当前 GNOME/Wayland 版本不兼容,都可能直接导致会话创建失败 → 登录循环。
四、第三步:软禁全部用户级服务(备份 + 清空)
为了既能恢复登录,又不丢服务配置,采取这种策略:
把
/home/oklife/.config/systemd/user整个挪到备份目录,让主账号先用一套"没有任何自建服务"的干净环境登录。
服务文件全部保留在user.broken.*里,之后按需恢复。
在 yuntian 终端执行:
sudo mv /home/oklife/.config/systemd/user \
/home/oklife/.config/systemd/user.broken.$(date +%s)
systemctl --user daemon-reload这一步:
- 不删除任何
.service文件; - 只是将用户级 systemd 单元目录整体改名为
user.broken.TIMESTAMP; - 主账号之后的登录,不再自动加载这些服务。

五、第四步:重启并测试主账号登录
- 在
yuntian桌面注销; - 整机重启(确保所有会话状态清空);
- 在图形登录界面,用
oklife登录。
结果:
- 登录循环消失;
oklife能正常进入桌面;- 桌面启动卡顿也一起消失(因为那些早期自启服务不再参与)。
这一步有效地证明:
登录循环与启动卡顿,主要源自
oklife账号下自动启动的一组用户服务组合。
将其整体"软禁"之后,账号恢复正常。

六、保持干净桌面:按需恢复服务而非全盘自启
此时,在 oklife 终端中:
ls /home/oklife/.config/systemd/user.broken.*看到备份目录内容类似:
user.broken.1786520220/
default.target.wants/
graphical-session.target.wants/
chrome-debug.service
hermes-gateway.service
openclaw-gateway.service
socks2http.service
openclaw-gateway.service.bak.*这就是你的"服务仓库"。
而当前生效目录:
ls ~/.config/systemd/user要么不存在,要么已是空目录,这就是干净桌面状态。
后续只需要:
- 在需要的时候,从备份目录复制单个
.service到当前目录; - 执行
systemctl --user daemon-reload && systemctl --user start XXX.service; - 不执行
enable,不让它们再自动随登录启动。
这样,你既保留了原有服务,又不会再因为自启导致登录循环或启动卡顿。

七、延伸阅读与资源
相关文档
- systemd User Services Documentation — systemd 用户服务官方文档
- xdg-desktop-portal GitHub — GNOME portal 组件说明
- GNOME Wayland Session Issues — GNOME Wayland 会话问题排查
系列文章
- [[Ubuntu 26.04 桌面启动卡顿、登录循环完整排查实录]] — 排查定位篇,讲解如何用 journalctl 和 systemd-analyze 定位根因
FAQ
Q1: 登录循环一定是用户配置问题吗?
不一定。如果是系统级别的问题(如磁盘满、显卡驱动崩溃),多账号都会出现登录循环。先用辅助账号验证是最快的区分方法。
Q2: 备份目录可以删除吗?
可以。确认服务不再需要后,删除 user.broken.* 目录即可释放空间。建议保留至少 30 天作为安全网。
Q3: 如何判断某个服务是否导致登录循环?
逐个恢复服务,每次恢复后重启测试。如果某服务恢复后再次出现登录循环,该服务就是问题根源。
Q4: 按需启动的服务会影响使用体验吗?
不会。按需启动意味着只有你需要某个服务时才手动启动它,反而让桌面更干净、启动更快。
结语
这一系列实战说明了:
- Ubuntu 桌面上的启动卡顿和登录循环,很多时候不是"系统炸了",而是用户会话下挂了太多自建服务和进程;
journalctl+systemd-analyze+systemd user unit是非常强力的定位组合;- 从"全自动自启"转向"按需启动",对于大型 AI 工厂式系统来说既稳定又灵活。
如需了解排查定位过程,可参考 [[Ubuntu 26.04 桌面启动卡顿、登录循环完整排查实录]]。
梦行志