必须同时禁用systemd目标、logind硬件事件、sleep.conf底层开关和gnome gsettings四层:1 systemctl mask四个sleep.target;2 logind.conf设handlelidswitch等为ignore并重启服务;3 sleep.conf中allowsuspend等全设为no;4 gsettings设sleep-inactive-*-type为'nothing'。

直接禁用休眠必须同时切断 systemd 层、桌面层、硬件事件层三路触发,只改图形设置或只跑一条 gsettings 命令,大概率失效。
systemctl mask 四个 sleep 目标是基础操作
Ubuntu 24.04/22.04 的休眠行为由 sleep.target、suspend.target、hibernate.target、hybrid-sleep.target 四个 systemd 单元协调。仅 stop 或 disable 不够——它们仍可能被其他服务间接激活。mask 才是真正阻断入口:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target- 执行后检查:
systemctl status sleep.target应显示Loaded: masked,不是inactive (dead) - 如果看到
static或enabled,说明没生效,需重试并确认无拼写错误
/etc/systemd/logind.conf 必须显式 ignore 硬件事件
合盖、按电源键、空闲超时等动作由 systemd-logind 拦截处理。默认配置里这些选项是注释掉的,不取消注释 + 设为 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,取消以下行的注释,并设值: HandleLidSwitch=ignoreHandleSuspendKey=ignoreHandleHibernateKey=ignoreIdleAction=ignore- 改完必须运行
sudo systemctl restart systemd-logind,否则配置不加载
/etc/systemd/sleep.conf 是最终保险(尤其 Ubuntu 24.04)
即使前面两步都做了,某些内核或固件仍可能绕过 logind,直接调用底层睡眠服务。/etc/systemd/sleep.conf 是 systemd 自己的“开关总闸”:
- 创建或编辑
/etc/systemd/sleep.conf,确保包含: [Sleep]AllowSuspend=noAllowHibernation=noAllowSuspendThenHibernate=noAllowHybridSleep=no- 注意:不要依赖
/etc/systemd/sleep.conf.d/下的碎片文件,主配置更稳定;若该文件不存在,直接新建即可
GNOME 桌面层的 gsettings 设置不能省
GNOME 的电源插件(org.gnome.settings-daemon.plugins.power)会独立监听空闲状态,和 systemd 并行工作。它不读 logind.conf,必须单独关:
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0- 关键点:timeout 设为
0仅表示“立即”,不是“禁用”。真正禁用要配合type参数: gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
最容易被忽略的是:这四层(systemd target、logind、sleep.conf、gsettings)缺一不可。任一层漏掉,系统就可能在你重启后某天凌晨突然黑屏、SSH 断连、服务中断——而且日志里只显示 Started Suspend,找不到源头。










