银河麒麟系统需同时满足内核支持休眠、swap空间充足、ukui授权休眠、logind策略配置四项条件才能实现自动休眠;仅设图形界面时间无效。

如果您希望银河麒麟系统在空闲一段时间后自动进入休眠状态,以彻底断电保存当前工作状态并节省能耗,需同时满足内核支持、swap空间充足、桌面环境授权及策略配置四项条件。仅修改图形界面中的休眠时间选项,若底层未启用休眠能力,系统将静默忽略该设置。
确认并创建足够大的swap空间
Linux休眠必须把全部内存内容写入swap区域,若swap缺失或容量小于物理内存,内核会直接禁用休眠功能。
执行free -h查看当前swap大小;若显示为0B或数值明显小于“Mem”行的总内存,则需立即创建swap文件。
运行sudo fallocate -l 8G /swapfile创建8GB交换文件(此容量适配16GB及以下内存配置)。
【必须执行chmod 600 /swapfile】——否则mkswap会报错“Permission denied”,因swap文件不允许组或其他用户读写。
执行sudo mkswap /swapfile && sudo swapon /swapfile完成格式化与即时启用。
最后写入fstab确保重启后仍生效:echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab。
验证内核是否支持休眠并测试触发能力
即使有swap,也需确认内核编译时启用了CONFIG_HIBERNATION=y且/sys/power/state接口暴露disk状态。
执行cat /sys/power/state,输出中必须包含disk字样;若只有mem、freeze等,说明休眠未就绪。
临时测试休眠是否可用:sudo systemctl hibernate。成功则主机完全断电,再次按电源键可恢复至休眠前状态。
若失败,立即执行journalctl -b -p 3 | grep -i hibernate,重点排查“hibernation not supported”或“no swap space”类错误。
启用UKUI桌面环境的休眠菜单与自动触发权限
UKUI默认可能隐藏休眠入口,且自动休眠开关常处于关闭状态,需手动开启。
方法一:命令行一次性授权
执行以下三条命令:gsettings set org.ukui.power-manager can-hibernate truegsettings set org.ukui.power-manager sleep-computer-ac 28800(设为8小时,单位秒)gsettings set org.ukui.power-manager sleep-computer-battery 10800(设为3小时)
方法二:图形界面配置
① 点击「开始菜单」→「设置」→「电源」
② 点击「更改计划设置」→「更改高级电源设置」
③ 展开「睡眠」→「休眠」节点
④ 分别为「使用交流电源时」和「使用电池时」设定分钟数,如480和180
⑤ 点击「确定」保存——此操作会覆盖gsettings中对应值,但前提是can-hibernate已为true
【若图形界面中“休眠”选项仍为灰色或不可选,请先执行gsettings set org.ukui.power-manager can-hibernate true】——这是启用菜单项的硬性前提,GUI本身不提供该开关。
防止物理事件干扰定时休眠逻辑
合盖、短按电源键等硬件事件默认由systemd-logind接管,可能强制触发suspend而非hibernate,导致您设定的休眠时间失效。
以root身份编辑logind配置:sudo nano /etc/systemd/logind.conf
找到并取消注释以下三行,将其值统一改为ignore:
HandlePowerKey=ignore
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
保存后重启logind服务:sudo systemctl restart systemd-logind,确保新策略立即生效。











