真正禁用ubuntu休眠需三处同步操作:一是systemctl mask sleep.target等核心目标单元;二是编辑/etc/systemd/logind.conf取消注释并设handlelidswitch=ignore等参数,再重启systemd-logind;三是gsettings将ac与电池模式下的timeout设为0、type设为'nothing'。

Ubuntu 禁止系统休眠,不能只关屏幕或调个设置就完事——systemd 的 sleep.target、suspend.target 等服务默认是启用的,只要触发条件满足(比如空闲、合盖、按电源键),系统仍会强行挂起。真正禁用,得从 systemd 层、登录管理器层、GNOME 设置层三处同时下手。
systemctl mask sleep.target 等目标单元是基础操作
仅靠 GUI 设置或 gsettings 无法阻止 systemd 级别的休眠调用,必须先屏蔽核心目标单元:
-
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target—— 这会让所有相关 unit 状态变成masked,比disable更彻底,连手动触发都会失败 - 执行后用
systemctl status sleep.target验证,输出中必须出现Loaded: masked,而不是loaded或disabled - 注意:
mask是硬性禁止,后续若需恢复,得用sudo systemctl unmask ...,别漏掉任一 target
/etc/systemd/logind.conf 中的 HandleLidSwitch=ignore 必须取消注释
很多用户改了但没生效,问题出在参数被注释或写错位置:
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 编辑
/etc/systemd/logind.conf,找到并取消注释以下几行(删掉开头的#),再设为ignore:HandleLidSwitch=ignoreHandleSuspendKey=ignoreHandleHibernateKey=ignoreIdleAction=ignore -
HandleLidSwitchDocked=ignore和HandleLidSwitchExternalPower=ignore也建议加上,尤其对服务器或台式机 - 改完必须运行
sudo systemctl restart systemd-logind,否则配置不加载;重启后可能黑屏 1–2 秒,属正常现象
gsettings 设置 sleep-inactive-ac-timeout=0 不等于禁用挂起
设成 0 只是把超时时间归零,但 GNOME 仍可能按 sleep-inactive-ac-type 的值执行动作:
- 正确做法是两步都做:
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing' - 电池模式同理:
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing' - 桌面环境未启动时(如纯命令行服务器),
gsettings不生效,此时依赖前两项配置
最容易被忽略的是:合盖、电源键、空闲这些触发路径彼此独立,少堵一个,系统照睡。特别是 IdleAction=ignore 和 HandleLidSwitch=ignore 必须显式写出且取消注释,不能只靠 mask 覆盖。










