openeuler2509锁屏/登录界面无法按电源键关机

系统问题修复记录:锁屏/登录界面无法按电源键关机

记录日期: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(忽略),表现为按电源键无响应。

排查确认过程:

  1. 主配置 /etc/systemd/logind.conf 已正确配置 HandlePowerKey=poweroff,acpid 未运行(不会与 logind 冲突)。
  2. systemd-analyze cat-config systemd/logind.conf 显示 drop-in 覆盖了主配置,生效值为 ignore
  3. 通过 D-Bus 查询确认生效值:busctl get-property ... HandlePowerKeys "ignore"
  4. loginctl(经 D-Bus ListInhibitors)确认无任何进程持有 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" :white_check_mark:
生效配置合并(cat-config) HandlePowerKey=poweroffPowerKeyIgnoreInhibited=yes :white_check_mark:
logind 监听电源键 日志出现 Watching system buttons on /dev/input/event0 (Power Button) :white_check_mark:
systemd-logind 服务状态 active,无报错 :white_check_mark:
会话状态 正常,未受影响 :white_check_mark:

6. 说明与回滚

  • PowerKeyIgnoreInhibited=yes 保证即使锁屏组件(如 ukui-screensaver-backend)将来声明抑制电源键,logind 仍会执行关机;代价是桌面环境下会跳过应用/桌面环境的"关机确认对话框"直接关机。
1 个赞