系统问题修复记录:锁屏/登录界面无法按电源键关机
记录日期:2026-08-04
1. 问题描述
在 锁屏界面 或 用户登录界面(greeter) 下按电源键无任何反应,无法关机;仅桌面正常会话下可关机。
2. 系统环境
| 项目 | 值 |
|---|---|
| 操作系统 | openEuler 25.09 |
| 桌面环境 | UKUI(X11) |
| 显示管理器 | LightDM + ukui-greeter |
| systemd | v255-54.oe2509 |
3. 根因分析
/etc/systemd/logind.conf.d/power-ignore.conf 这个 drop-in 将电源键处理设置为:
[Login]
HandlePowerKey=ignore
而 systemd 的 drop-in 配置优先级高于主配置文件 /etc/systemd/logind.conf 中的 HandlePowerKey=poweroff,因此 logind 实际生效的电源键策略为 ignore(忽略),表现为按电源键无响应。
排查确认过程:
- 主配置
/etc/systemd/logind.conf已正确配置HandlePowerKey=poweroff,acpid 未运行(不会与 logind 冲突)。 systemd-analyze cat-config systemd/logind.conf显示 drop-in 覆盖了主配置,生效值为ignore。- 通过 D-Bus 查询确认生效值:
busctl get-property ... HandlePowerKey→s "ignore"。 loginctl(经 D-BusListInhibitors)确认无任何进程持有handle-power-key类型 inhibitor,排除进程拦截因素,纯属配置问题。
4. 修复步骤
修改 /etc/systemd/logind.conf.d/power-ignore.conf:
[Login]
# 电源键关机:修复锁屏/登录界面无法关机的问题(原为 ignore,覆盖了主配置的 poweroff)
HandlePowerKey=poweroff
# 即使有进程(如锁屏组件)声明抑制电源键,也执行关机,保证锁屏/登录界面可用
PowerKeyIgnoreInhibited=yes
重启 logind 使配置生效:
systemctl restart systemd-logind
5. 验证结果
| 检查项 | 结果 |
|---|---|
| 生效的 HandlePowerKey(D-Bus) | s "poweroff" |
| 生效配置合并(cat-config) | HandlePowerKey=poweroff、PowerKeyIgnoreInhibited=yes |
| logind 监听电源键 | 日志出现 Watching system buttons on /dev/input/event0 (Power Button) |
| systemd-logind 服务状态 | active,无报错 |
| 会话状态 | 正常,未受影响 |
6. 说明与回滚
PowerKeyIgnoreInhibited=yes保证即使锁屏组件(如 ukui-screensaver-backend)将来声明抑制电源键,logind 仍会执行关机;代价是桌面环境下会跳过应用/桌面环境的"关机确认对话框"直接关机。