只要满足预定条件,似乎有很多方法可以在需要时永久操纵 Ubuntu 的设置以使其进入睡眠状态。然而,这些是更永久的解决方案,没有考虑可能想要暂时放弃标准策略的罕见任务。我遇到的问题是我有一个运行时间很长的脚本来做一些备份,我不希望计算机在该特定进程运行时进入睡眠或休眠状态,这通常需要 30-50 分钟。因此,是否有一个命令可以包含在我的备份脚本中,以防止系统在备份脚本运行时休眠/休眠,是否还有一个命令可以在备份完成后恢复正常的默认电源策略?
就像是
#!/usr/bin/bash
#disable normal powerpolicy
disable-power-policies
backup /dev/sda /dev/sdb /dev/fioa /dev/fiob
#enable power policies.
enable-power-policies
在 Ubuntu 16.04 LTS 上,我成功地使用了以下命令来禁用挂起:
这是重新启用它:
临时最方便的方法是使用
systemd-inhibit
:在没有额外选项的情况下,
systemd-inhibit
将CMD
在暂时禁用空闲检测(可能会自动挂起/休眠机器)、显式挂起/休眠(例如,您不小心按下键盘上的睡眠键)和关机命令的同时执行。您可以使用它来调用您的备份脚本,如下所示:
去年我遇到了完全相同的问题,备份需要几个小时!
你可以试试 Keep.Awake https://launchpad.net/keep.awake 它可以监控 CPU 负载、网络流量和用户活动的最小阈值。
我还没有抽出时间为它创建一个 snap 或 deb。但是,您可以暂时从此处的 Launchpad 下载该程序
当前版本稳定,适用于从 14.04 到 16.04 的所有 Ubuntu 版本。也就是说,我正在不断改进它,并将添加新功能。
它像一个正确的命令一样工作。键入 --help 以查看可以执行的操作的完整列表。下面的示例只是其中的一部分:
交互式运行:
作为后台服务运行:
要作为后台服务运行并在确定用户空闲之前将 15 分钟(900 秒)设置为用户活动空闲时间:
要作为后台服务运行并将最小 CPU 负载设置为 13%:
要作为后台服务运行并将最小网络流量设置为 5KB(5120 字节):
要一次运行以上所有三个设置(网络、CPU、用户空闲):
您可以
gsettings
在脚本中使用来禁用电源设置中的自动挂起并再次恢复电源设置的默认行为。这是一个简单的配置,它首先获取当前睡眠超时,禁用它并在执行一些任务后重新启用它。
下面是如何在 Xfce 中执行此操作。(感谢 g_p 的回答,这让我开始了自己的工作。)
试试
caffeine
,可以安装http://manpages.ubuntu.com/manpages/focal/man1/systemd-inhibit.1.html
概要
描述
https://www.freedesktop.org/wiki/Software/systemd/inhibit