未登录特定帐户时防止睡眠/暂停

jos*_*hwb 19 suspend hibernate power-management 18.04

我们有一个运行 Ubuntu 18.04 的共享办公室桌面,其中多个作业(通过 ssh 和 screen)经常在多个帐户上运行数周。登录帐户后,睡眠/暂停通过以下方式停用:

  1. 主系统设置中的电源设置
  2. 使用gnome-tweak-tool,将“关闭笔记本电脑盖时暂停”设置为关闭。

只要具有这些电源设置的用户始终直接登录到计算机(即,物理登录,而不是通过 ssh),这就可以正常工作。

问题是在没有用户当前登录的直接即当机器在主登录屏幕(如开机时)。未登录特定帐户时,似乎没有设置睡眠/暂停设置的方法。所以,如果机器停留在这个屏幕上,它最终会休眠,暂停所有正在运行的作业。

正如我所提到的,只要用户登录,事情就可以正常工作。但是,这被视为存在安全风险。所以我们想找到一个更好的全系统解决方案。

我应该提到我们有另一个运行 Ubuntu 16.04 的办公桌面,它没有这个问题。

Win*_*nix 9

当没有用户登录时

当没有用户登录时,电源设置来自 psuedo-user ID gdmGDM 自动挂起的以下控件来自:ArchLinux GDM

GDM 自动挂起 (GNOME 3.28)

GDM 使用单独的 dconf 数据库来控制电源管理。通过将用户设置复制到 GDM 的 dconf 数据库,您可以使 GDM 以与用户会话相同的方式运行。

$ IFS=$'\n'; for x in $(sudo -u username gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "sudo -u gdm dbus-launch gsettings set $x"; done; unset IFS
Run Code Online (Sandbox Code Playgroud)

username你的用户名在哪里。

或者简单地禁用自动挂起(也用电池代替交流电运行命令以在使用电池运行时也禁用它):

$ sudo -u gdm dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
Run Code Online (Sandbox Code Playgroud)

  • 这给了我很多“权限被拒绝”的错误消息 (2认同)

Pas*_*nen 5

编辑文件 /etc/systemd/logind.conf

在那里你可以找到这一行:

#HandleLidSwitch=suspend
Run Code Online (Sandbox Code Playgroud)

将其更改为:

HandleLidSwitch=ignore
Run Code Online (Sandbox Code Playgroud)

现在您的登录屏幕也会忽略您的盖子开关。

logind.conf 有一个很好的 ubuntu 手册页:

http://manpages.ubuntu.com/manpages/cosmic/man5/logind.conf.5.html

要通过 policykit(系统范围设置)禁用挂起,请按照以下说明操作:

https://sites.google.com/site/easytipsforlinux/disable-hibernate-and-suspend