当我合上盖子时,系统进入“挂起”模式,但休眠状态从未发生。
我知道挂起然后休眠可以正常工作,因为以下命令可以使其正常工作(挂起,然后在一段时间后休眠):
sudo /usr/lib/systemd/systemd-sleep suspend-then-hibernate
问题是它在关闭盖子时没有执行所需的顺序。就像 systemd 一样,在关闭盖子时,它会进入“挂起”而不是“挂起然后休眠”,但不知道如何/在哪里修复它。
使用当前配置,syslog 的相关部分(我认为)是:
Feb 15 20:46:52 antorcha systemd[1]: Reached target Sleep.
Feb 15 20:46:52 antorcha systemd[1]: Starting Suspend...
Feb 15 20:46:52 antorcha systemd-sleep[10863]: Suspending system...
Feb 15 20:59:19 antorcha systemd-sleep[10863]: System resumed.
(这表明它进入“暂停”状态,而不是“暂停然后休眠”状态。
这是我的 sleep.conf:
[Sleep]
HibernateDelaySec=20
HibernateState=disk
#AllowHibernation=yes
#AllowHybridSleep=yes
#AllowSuspend=yes
#AllowSuspendThenHibernate=yes
#HibernateMode=platform shutdown
#HybridSleepMode=suspend platform shutdown
#HybridSleepState=disk
#SuspendMode=suspend-then-hibernate
#SuspendState=mem standby freeze
(等待时间设置为20秒只是为了调试)
这是我的 logind.conf (全部注释掉):
[Login]
HandleLidSwitch=suspend-then-hibernate
HandleSuspendKey=suspend-then-hibernate
#HandleHibernateKey=hibernate
#HandleLidSwitchDocked=ignore
#HandleLidSwitchExternalPower=suspend
#HandlePowerKey=poweroff
#HibernateKeyIgnoreInhibited=no
#HoldoffTimeoutSec=30s
#IdleAction=ignore
#IdleActionSec=30min
#InhibitDelayMaxSec=5
#InhibitorsMax=8192
#KillExcludeUsers=root
#KillOnlyUsers=
#KillUserProcesses=no
#LidSwitchIgnoreInhibited=yes
#NAutoVTs=6
#PowerKeyIgnoreInhibited=no
#RemoveIPC=yes
#ReserveVT=6
#RuntimeDirectoryInodes=400k
#RuntimeDirectorySize=10%
#SessionsMax=8192
#SuspendKeyIgnoreInhibited=no
这是我的系统:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.10
Release: 20.10
Codename: groovy
$ uname -a
Linux antorcha 5.8.0-40-generic #45-Ubuntu SMP Fri Jan 15 11:05:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
谢谢您的帮助。
答案1
服务 suspend-then-hibernate 已存在于 Ubuntu 中,但无论出于何种原因,系统挂起仍被调用。这可能是由于 GRUB 配置问题(启动时)或符号链接造成的。在 /etc/systemd/logind.conf 中将 suspend 改为 suspend-then-hibernate,然后取消注释修改的行。
接下来,在删除 systemd-service 链接的同时,创建调用 suspend-then-hibernate.service 所需的符号链接。sudo rm -f /etc/systemd/system/systemd-suspend.service
sudo ln -s /usr/lib/systemd/system/systemd-suspend-then-hibernate.service /etc/systemd/system/systemd-suspend.service
接下来,通过以下方式找到 Linux Swap 驱动器的 UUID
sudo blkid /dev/sda'x'
:(x 是 SWAP 的分区)
复制 UUID 并打开 /etc/default/grub(以 root 身份打开 nano),然后添加或更新以下内容GRUB_CMDLINE_LINUX_DEFAULT条目,因此它看起来像以下 >>>>>
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash resume=UUID=5c03967e-b9fe-4a2e-8501–05002aa51dd6"
(或任何唯一唯一标识符是)
现在运行以下命令来使用新的更改更新 grub
sudo update-initramfs -u -k all
sudo update-grub
(然后重新启动)
这里有一些有用的来源和链接来研究可能的问题。
2019 关于如何正确配置挂起然后休眠的文章
有关 Ubuntu 20.10 中的睡眠然后休眠以及如何在 RAM 中保存状态的文档