在 Fedora 21 上完全禁用挂起/睡眠模式

在 Fedora 21 上完全禁用挂起/睡眠模式

我使用 SSH 连接到 Fedora 21 工作站,但几分钟后未使用该连接,系统进入睡眠状态,我失去了连接。

那么我怎样才能完全禁止系统进入挂起/睡眠模式呢?

答案1

我通过创建使用 systemd-inhibit 命令的 init.d 脚本解决了我的问题:

#!/bin/bash

nohup systemd-inhibit --why="Disable sleep" --mode=block /usr/bin/bash -c "while true; do sleep 120; done" >/dev/null 2>&1 &

exit 0

答案2

使用:

sudo systemctl mask suspend.target
sudo systemctl mask sleep.target

因为:
Systemd 管理着这一切。有一百万种方法可以触发关闭,包括 gnome/kde,NetworkManager当然还有 systemd 本身。睡眠和挂起目标,就像关机一样,是“静态”的,即无法禁用的核心内置单元。但是,您可以掩盖它们并防止systemd进入它们。

答案3

编辑:--what=idle从命令中删除 - 显然这还不够。默认值为--what=shutdown:sleep:idle,效果更好(但--what=sleep:idle也应该有效)。

老问题,但 systemd-inhibit 解决方案的另一个变体是放入以下内容~/.profile(在我的例子中,就在 byobu 启动之前)。然后,只要有登录 shell 打开(即主要是 SSH 会话,除非您也从非 GUI 控制台登录),睡眠就会被禁止。

# Inhibit idle sleep.  This background process waits for the current shell to exit.
nohup systemd-inhibit --who=Bash --why="Byobu running" tail --pid=$$ -f /dev/null &

我在这里找到了这tail --pid部分:https://stackoverflow.com/a/41613532/827828

相关内容