您的位置:首页 >Ubuntu如何设置自动关机休眠时长
发布于2026-08-11 阅读(0)
扫一扫,手机访问
在 Ubuntu 里,其实并没有一个统一叫“自动关机休眠时长”的设置。shutdown 负责的是定时执行硬关机,比如 sudo shutdown -h +30;而空闲一段时间后进入挂起或休眠,则由 systemd-logind 的 IdleAction 来控制,这通常需要修改 /etc/systemd/logind.conf 并重启服务。说白了,这两套机制各管一摊,彼此是独立的。

Ubuntu 里没有“自动关机休眠时长”这个统一概念——shutdown 是硬关机,systemd-logind 管的 IdleAction 是空闲后挂起/休眠,两者互不干扰。你得先分清自己要的是哪一种行为,再选对应机制。
shutdown 定时关机:只关电,不进休眠这是最直接的“到点断电”,不保存状态、不依赖休眠支持,适合跑完任务就彻底停机的场景。
sudo shutdown -h +30 表示 30 分钟后关机;sudo shutdown -h 22:00 表示今晚 10 点整关机crontab -e,写成 0 22 * * * /sbin/shutdown -h now(每天 22:00 关机),注意路径必须用绝对路径 /sbin/shutdownshutdown -r 混淆重启逻辑;取消任务用 sudo shutdown -c,不是 kill 进程shutdown 可能被 VirtualBox 拦截(尤其启用了“自动关闭”策略),此时需检查 VirtualBox 设置里的“系统 → 加速 → 启用 EFI”和“电源管理”是否冲突logind.conf 控制空闲后动作:挂起 or 休眠这是真正意义上的“自动休眠”逻辑,由 systemd-logind 监控用户活动,触发 IdleAction。它不等于关机,但常被误称为“自动关机休眠”。
/etc/systemd/logind.conf,取消注释并修改:IdleAction=lock 改为 IdleAction=hibernate 或 IdleAction=suspend;IdleActionSec=30min 设为空闲阈值(单位支持 s、min、h)sudo systemctl restart systemd-logind,否则不生效;systemctl status systemd-logind 可确认服务状态hibernate)需提前验证:运行 sudo pm-hibernate 测试能否成功进出,失败则说明 swap 不足或内核不支持,此时设成 suspend 更稳妥logind.conf;若 GUI 里改了没反应,大概率是配置文件里被覆盖了很多人抱怨“一离开就锁屏/休眠”,其实根源不在休眠本身,而在屏幕锁定与电源策略耦合。Ubuntu 默认把“屏幕关闭”和“系统挂起”绑在一起,且优先级混乱。
自动挂起 设为 从不(注意不是“屏幕关闭”选项)激活屏幕保护程序 关闭,或设为远大于挂起时间(比如 30 分钟),否则屏幕保护一启动,就会强制触发锁屏+挂起联动dconf 直接更底层:gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0(交流电下禁用空闲休眠)logind.conf 可能被绕过,得去对应面板里关更容易被忽视的,其实是这件事:IdleAction=hibernate 能不能生效,前提很硬——swap 分区至少得和 RAM 一样大,同时内核还必须启用 CONFIG_HIBERNATION=y。不少云镜像,或者精简版 Ubuntu,默认就把休眠支持关掉了,这种情况下即便配上也基本不起作用。与其来回折腾配置,不如先直接跑一遍 sudo pm-hibernate 做验证,这往往更管用。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9