如何从命令行暂时禁用睡眠和休眠

Rus*_*ber 12 command-line suspend hibernate power-management

只要满足预定条件,似乎有很多方法可以在需要时永久操纵 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
Run Code Online (Sandbox Code Playgroud)

Dan*_*lKO 15

暂时最方便的方法是使用systemd-inhibit

systemd-inhibit CMD [...]
Run Code Online (Sandbox Code Playgroud)

如果没有额外的选项,将在暂时禁用空闲检测(可能会自动挂起/休眠机器)、显式挂起/休眠(例如您意外按下键盘上的睡眠键)和关闭命令时systemd-inhibit执行。CMD

您可以使用它来调用备份脚本,如下所示:

systemd-inhibit ./my-backup-task.sh
Run Code Online (Sandbox Code Playgroud)


Dus*_*and 13

在 Ubuntu 16.04 LTS 上,我成功使用以下命令禁用挂起:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Run Code Online (Sandbox Code Playgroud)

这是重新启用它:

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
Run Code Online (Sandbox Code Playgroud)

  • 将 `--runtime` 传递给 `systemctl` 将使掩码暂时存在,并在下次启动时重置。 (4认同)