当我在终端中输入时systemctl suspend
,我的电脑会毫无问题地进入睡眠模式。但是,当我输入时systemctl hibernate
,它首先会打印此错误
Failed to hibernate system via logind: Access denied
然后要求输入密码,说明 hibernate.target 需要身份验证。
那么,知道如何才能systemctl hibernate
拥有同样的行为吗systemctl suspend
?
答案1
我新安装的 Ubuntu 18.04 和 19.10 也收到同样的消息。这可能是因为您需要权限才能执行systemctl hibernate
。为了解决这个问题,我做了:
sudo visudo -f /etc/sudoers.d/hibernate
并添加以下行:
%adm ALL=NOPASSWD: /bin/systemctl hibernate, /usr/bin/systemctl hibernate
注意:我的用户是 adm 组的成员。或者,您可以添加新组,将所有相关用户添加到该组,然后替换%adm
为%<your-group>
。
我不确定这是否是最佳做法,但它为我解决了这个问题。
此外,您需要具有与 RAM 大小相等的最小交换空间(交换文件或交换分区)才能使计算机休眠。
编辑:为 visudo 添加 -f 参数