应优先修改systemd-logind的idleactionsec参数并重启服务,因其优先级高于gsettings;同时需确认sleep-inactive-ac-type设为'nothing'以禁用挂起,否则仅调大sleep-inactive-ac-timeout无效。

gsettings 设置 sleep-inactive-ac-timeout 无效怎么办
直接用 gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 1800 设为 30 分钟,但系统仍 5 分钟就挂起——大概率是 IdleAction 优先级更高,或者企业策略锁死了配置。
GNOME 的电源行为由两层控制:上层是 gsettings(用户级),下层是 systemd-logind(系统级)。后者一旦启用 IdleAction=lock 或 hibernate,就会覆盖 sleep-inactive-ac-timeout 的值。
- 先查当前生效的空闲动作:
loginctl show-session $(loginctl | grep "session-" | head -n1 | awk '{print $1}') -p IdleAction -p IdleActionSec - 若输出含
IdleAction=lock且IdleActionSec=300,说明 GNOME 桌面实际按这个执行,sleep-inactive-ac-timeout已被忽略 - 要真正生效,必须统一改
IdleActionSec(单位秒)或禁用它:sudo systemctl mask systemd-logind不推荐;更稳妥的是改/etc/systemd/logind.conf
/etc/systemd/logind.conf 中 IdleActionSec 怎么填
IdleActionSec 是 systemd 级别的空闲超时,它决定“多久没操作就触发 IdleAction”,比如挂起、休眠或锁屏。这个值一旦设了,gsettings 里同名功能基本失效。
编辑 /etc/systemd/logind.conf 后,必须重启服务:sudo systemctl restart systemd-logind,否则不生效。
- 设为 1200 秒(20 分钟)挂起:
IdleAction=suspend+IdleActionSec=1200 - 设为永不挂起:
IdleAction=lock+IdleActionSec=0(注意:0 表示禁用,不是“立刻执行”) - 若设
IdleAction=hibernate,需确认休眠功能已启用(sudo pm-hibernate能成功运行),否则会 fallback 到 suspend 或静默失败 - 该配置对所有用户生效,且不受 GNOME 用户设置干扰——适合服务器或企业环境统一管控
为什么改了 gsettings 还是 5 分钟就睡
常见现象:执行 gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 3600 后,5 分钟仍挂起。这不是命令错,而是 GNOME 在新版(22.04+)中默认把 sleep-inactive-ac-timeout 和 sleep-inactive-battery-timeout 当作“锁屏前等待时间”,而非挂起时间。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
真正控制挂起的是 sleep-inactive-ac-type 和 sleep-inactive-battery-type 这两个开关:
- 它们的合法值是
'suspend'、'hibernate'、'nothing'(字符串,带单引号) - 默认值可能是
'suspend',但若设成空字符串''或'nothing',挂起行为就会停用 - 正确写法:
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type "'nothing'" - 注意引号嵌套:外层双引号包裹整个命令,内层单引号包裹字符串值,否则 dbus 解析失败
远程 SSH 会话被断开,和睡眠设置有关吗
有关,但不是同一机制。SSH 断连通常是因为系统挂起后网卡断电,或 SSH daemon 自身超时。GNOME 的 sleep-inactive-ac-timeout 控制的是图形会话挂起,不影响 SSH 服务本身。
要保活 SSH,得单独配 sshd_config:
-
TCPKeepAlive yes:让 TCP 层发保活包(底层,但可能被防火墙拦截) -
ClientAliveInterval 60:SSH daemon 每 60 秒主动发一次心跳 -
ClientAliveCountMax 3:连续 3 次无响应才断开(即总容忍 180 秒) - 改完必须
sudo systemctl restart ssh,且客户端无需改动 - 如果系统挂起了,这些设置也救不了——所以得先确保
IdleActionSec或sleep-inactive-ac-type不触发挂起
桌面端和服务器端的睡眠逻辑是解耦的,混在一起调容易反复踩坑。先明确你要控的是“图形界面挂起”,还是“SSH 会话存活”,再选对应路径。










