要想解决问题,最直接有效的办法是同时设置三行,分别是HandleLidSwitch=ignore、HandleLidSwitchExternalPower=ignore以及HandleLidSwitchDocked=ignore。此外,还需要关闭GNOME的“Suspend when laptop lid is closed”选项。否则,即便合上盖子,也可能会触发挂起。

Ubuntu如何设置笔记本合盖不进入休眠

HandleLidSwitch=ignore 是最直接有效的解决方式,但仅改这一行常失效——因为 Ubuntu 默认会按供电状态分别处理合盖行为,必须同时覆盖三种场景。

确认当前生效的合盖策略

先看系统实际在用哪套规则:

grep -E "^HandleLidSwitch" /etc/systemd/logind.conf

如果输出为空或只有注释行(如 #HandleLidSwitch=suspend),说明 systemd 正在使用内置默认值,而非你手动改过的那行。常见错误是只改了 HandleLidSwitch,却忽略另外两个关键参数。

多数人合盖时其实处于“插电”状态,所以单改 HandleLidSwitch 完全没用。

三行配置必须同时写进 logind.conf

编辑配置文件:

sudo nano /etc/systemd/logind.conf

找到这三行(或手动添加),确保它们都取消注释、小写、无空格:

注意:ignore 必须全小写;行首不能有空格;等号前后不要加空格;每行开头不能留 #;保存后权限应为 -rw-r--r--(644)。

改完立刻重启服务:

sudo systemctl restart systemd-logind

GNOME 桌面用户别跳过图形层开关

即使底层 logind.conf 已设为 ignore,GNOME 仍可能在桌面会话层拦截合盖事件并强制挂起。这是双重控制机制,必须同步关闭:

这个开关不依赖重启,改完立即生效。但它只影响当前 GNOME 会话,对 SSH 或 tty 终端无效——所以底层 logind.conf 修改仍是必需的。

验证是否真生效,别信“改完就OK”

测试前先启一个长运行命令:

ping -i 5 8.8.8.8 && echo "still alive"

合盖等待 30 秒,开盖后检查:

还有一点极易被忽视:某些厂商的BIOS/UEFI会主动向内核发送lid close事件,而systemd-logind对此只能响应,却无法屏蔽硬件信号本身。要是这种情况反复出现且无法解决,那就得检查BIOS中是否存在“Lid Switch”或“Power Management”相关选项,并尝试将其禁用。

本文转载于:https://www.php.cn/faq/3013466.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。