问题描述 / Problem
关机/重启时卡在 user@1000.service/stop,需要等待约 90 秒超时后才继续关机。
When shutting down / rebooting, the system hangs at user@1000.service/stop for ~90 seconds until the systemd stop timeout expires.

[ OK ] Started plymouth-poweroff.service - Show Plymouth Power Off Screen.
[ OK ] Stopped tailscaled.service - Tailscale node agent.
[ * ] Job user@1000.service/stop running ...e/stop running (53s / 1min 29s)...
环境 / Environment
| 项目 |
值 |
| OS |
Deepin 25 (crimson 25.01.01) |
| 内核 |
6.18.38-amd64-desktop-rolling #25.01.01.28 SMP PREEMPT_DYNAMIC Thu Jul 16 17:57:00 CST 2026 x86_64 |
| dde-session |
2.0.29 |
| dde-application-manager |
1.2.59 |
| dde-session-shell |
6.0.65 |
| dde-session-ui |
6.0.46 |
| linglong-bin |
1.13.8-1 |
| linglong-box |
2.2.1-1 |
| 桌面 |
X11(DDE) |
| 复现日期 |
2026-08-05 12:46 关机时 |
日志时间线 / Log timeline (journalctl -b -1)
# 12:46:18 —— 用户会话开始拆解,dde-application-manager 已无法解析应用
8月 05 12:46:18 liyuan-nb dde-application-manager[2399]: dde.am.manager: couldn't find app "bamfdaemon" in application manager.
8月 05 12:46:18 liyuan-nb dde-application-manager[2399]: dde.am.manager: couldn't find app "org.deepin.dde.SoundEffect1" in application manager.
# 12:46:19 —— 关键:dde-session-manager 的 ExecStopPost 触发 dde-session-ctl --shutdown,
# 它请求 dde-application-manager 以 linglong portable binary 方式异步启动 transient unit
8月 05 12:46:19 liyuan-nb dde-application-manager[2399]: Request sent to start transient unit (Async): "app-DDE-tmp.portablebinary.-usr-libexec-dde\\x2dsession\\x2dctl@f801ffb0.service"
8月 05 12:46:19 liyuan-nb dde-application-manager[2399]: dde.am.manager: couldn't find app "dde-session-ctl" in application manager.
8月 05 12:46:19 liyuan-nb dde-application-manager[2399]: dde.am.manager: couldn't find app "home-liyuan" in application manager.
# dde-session-ctl 进程收到了 systemd 的 job 排队确认(job 3557),但 transient unit 实际启动失败,
# 进程不退出,一直挂住
8月 05 12:46:19 liyuan-nb dde-session-ctl[44809]: QDBusMessage(type=MethodReturn, service="", signature="o", contents=([ObjectPath: /org/freedesktop/systemd1/job/3557]) )
# 同一时刻 dde-application-manager 已与 X11 断开,注册实例全面失败
8月 05 12:46:19 liyuan-nb dde-application-manager[2399]: The X11 connection broke (error 1). Did the X11 server die?
8月 05 12:46:19 liyuan-nb dde-application-manager[2399]: dde.am.manager: failed to add instance "/org/freedesktop/systemd1/job/3594" to app "tailscale-systray"
8月 05 12:46:19 liyuan-nb dde-application-manager[2399]: dde.am.manager: failed to add instance "/org/freedesktop/systemd1/job/3596" to app "fcitx5-helper"
8月 05 12:46:19 liyuan-nb dde-application-manager[2399]: dde.am.manager: failed to add instance "/org/freedesktop/systemd1/job/3587" to app "uos-ai-assistant.autostart"
# 12:46:22 —— 三个 DDE 应用 scope 先超时被杀(次要,仅数秒)
8月 05 12:46:22 liyuan-nb systemd[1153]: app-DDE-deepin\x2dwine\x2dbuilder@1106003324d744cd981a160e4dc05838.service: State 'stop-sigterm' timed out. Killing.
8月 05 12:46:22 liyuan-nb systemd[1153]: app-DDE-microsoft\x2dedge@3d27b194ae1f4297811fac7429cb24d8.service: State 'stop-sigterm' timed out. Killing.
8月 05 12:46:22 liyuan-nb systemd[1153]: app-DDE-obsidian@fb2fdd716d4b4002a8725ad5f6f4974c.service: State 'stop-sigterm' timed out. Killing.
# 12:46:29 —— tailscaled 系统服务 stop 超时被杀(断网场景,次要)
8月 05 12:46:29 liyuan-nb systemd[1]: tailscaled.service: State 'stop-sigterm' timed out. Killing.
# 12:47:49 —— ★ 主卡点:dde-session-manager 的 ExecStopPost(dde-session-ctl --shutdown)
# 挂满 90 秒,stop-post 超时被强杀,关机才继续
8月 05 12:47:49 liyuan-nb systemd[1153]: dde-session-manager.service: State 'stop-post' timed out. Terminating.
8月 05 12:47:49 liyuan-nb systemd[1153]: dde-session-manager.service: Control process exited, code=killed, status=15/TERM
8月 05 12:47:49 liyuan-nb systemd[1153]: dde-session-manager.service: Failed with result 'timeout'.
# 附带:OnFailure 接管失败(事务冲突),dde-session-shutdown.target 无法按预期启动
8月 05 12:47:49 liyuan-nb systemd[1153]: dde-session-manager.service: Failed to enqueue OnFailure= job, ignoring: Transaction for dde-session-shutdown.target/start is destructive (gpg-agent-browser.socket has 'stop' job queued, but 'start' is included in transaction).
根因分析 / Root cause analysis
dde-session-manager.service(由 dde-session 2.0.29 提供)的 unit 定义:
[Service]
Type=notify
ExecStart=/usr/bin/dde-session --systemd-service
ExecStopPost=/usr/libexec/dde-session-ctl --shutdown
关机时 systemd 停止用户会话,触发 ExecStopPost=/usr/libexec/dde-session-ctl --shutdown。
-
dde-session-ctl --shutdown 的执行路径是:通过 D-Bus 请求 dde-application-manager 以 linglong portable binary 方式异步启动一个 transient unit(app-DDE-tmp.portablebinary.-usr-libexec-dde\x2dsession\x2dctl@f801ffb0.service)来完成会话清理。
-
但此时 dde-application-manager 已经处于拆解状态(X11 连接已断开、couldn't find app "dde-session-ctl"、注册实例全部失败),transient unit 永远无法真正启动。
-
dde-session-ctl 进程在收到 systemd job 排队确认(job 3557)后没有对启动失败做超时/错误处理,一直等待该 unit 完成,进程永不退出。
-
systemd 等待 ExecStopPost 直到 TimeoutStopSec=90s(用户会话默认),强杀后关机才继续。整个用户会话的停止被这一个进程拖慢 90 秒。
核心问题:dde-session-ctl --shutdown 依赖 dde-application-manager + linglong portable binary 机制执行关机清理,但 dde-application-manager 的停止顺序/状态在关机时无法保证可用,且 dde-session-ctl 对启动失败无超时保护 → 每次关机稳定卡 90 秒。
期望行为 / Expected behavior
dde-session-ctl --shutdown 应直接执行清理,或对 transient unit 启动失败立即报错退出,不应无超时等待
- 关机时 dde-application-manager 不应早于依赖它的 dde-session-manager 清理流程被拆解(依赖顺序问题)
- 预期关机总耗时与桌面会话大小无关,不应被固定拖慢 90 秒
相关观察 / Related observations(次要)
- 同一时刻 3 个
app-DDE-* scope(Edge / Obsidian / deepin-wine-builder)stop-sigterm 超时被杀——应用退出不响应 SIGTERM 是另一类问题(Chromium 系 GPU 进程、wine 确认对话框),非本次主因。
- 关机完成时
systemd[1] 报 Failed unmounting var.mount(/var 为独立分区 /dev/nvme0n1p5,ostree 部署),可能与会话未正常收尾有关,供参考。
- tailscaled stop 超时被杀系当天网络环境(无外网/断连重连)导致,与本 issue 无关。
附件 / Attachments
完整日志(用户会话 + 系统,2026-08-05 12:44-12:48 时段):https://gist.github.com/liyuan-rey/2dcf37832e638be337018c2942082026
user-session.log:journalctl -b -1 --user --since '2026-08-05 12:44:00' --until '2026-08-05 12:47:50'
system.log:journalctl -b -1 --since '2026-08-05 12:44:00' --until '2026-08-05 12:48:10'
问题描述 / Problem
关机/重启时卡在
user@1000.service/stop,需要等待约 90 秒超时后才继续关机。When shutting down / rebooting, the system hangs at
user@1000.service/stopfor ~90 seconds until the systemd stop timeout expires.环境 / Environment
crimson25.01.01)6.18.38-amd64-desktop-rolling #25.01.01.28 SMP PREEMPT_DYNAMIC Thu Jul 16 17:57:00 CST 2026 x86_64日志时间线 / Log timeline (journalctl -b -1)
根因分析 / Root cause analysis
dde-session-manager.service(由 dde-session 2.0.29 提供)的 unit 定义:关机时 systemd 停止用户会话,触发
ExecStopPost=/usr/libexec/dde-session-ctl --shutdown。dde-session-ctl --shutdown的执行路径是:通过 D-Bus 请求 dde-application-manager 以 linglong portable binary 方式异步启动一个 transient unit(app-DDE-tmp.portablebinary.-usr-libexec-dde\x2dsession\x2dctl@f801ffb0.service)来完成会话清理。但此时 dde-application-manager 已经处于拆解状态(X11 连接已断开、
couldn't find app "dde-session-ctl"、注册实例全部失败),transient unit 永远无法真正启动。dde-session-ctl进程在收到 systemd job 排队确认(job 3557)后没有对启动失败做超时/错误处理,一直等待该 unit 完成,进程永不退出。systemd 等待
ExecStopPost直到TimeoutStopSec=90s(用户会话默认),强杀后关机才继续。整个用户会话的停止被这一个进程拖慢 90 秒。核心问题:
dde-session-ctl --shutdown依赖 dde-application-manager + linglong portable binary 机制执行关机清理,但 dde-application-manager 的停止顺序/状态在关机时无法保证可用,且 dde-session-ctl 对启动失败无超时保护 → 每次关机稳定卡 90 秒。期望行为 / Expected behavior
dde-session-ctl --shutdown应直接执行清理,或对 transient unit 启动失败立即报错退出,不应无超时等待相关观察 / Related observations(次要)
app-DDE-*scope(Edge / Obsidian / deepin-wine-builder)stop-sigterm 超时被杀——应用退出不响应 SIGTERM 是另一类问题(Chromium 系 GPU 进程、wine 确认对话框),非本次主因。systemd[1]报Failed unmounting var.mount(/var 为独立分区 /dev/nvme0n1p5,ostree 部署),可能与会话未正常收尾有关,供参考。附件 / Attachments
完整日志(用户会话 + 系统,2026-08-05 12:44-12:48 时段):https://gist.github.com/liyuan-rey/2dcf37832e638be337018c2942082026
user-session.log:journalctl -b -1 --user --since '2026-08-05 12:44:00' --until '2026-08-05 12:47:50'system.log:journalctl -b -1 --since '2026-08-05 12:44:00' --until '2026-08-05 12:48:10'