自动从睡眠或者休眠模式唤醒Linux系统
时间:2020-03-21 11:42:41 来源:igfitidea点击:
如何使用'rtcwake'实用程序从睡眠或者休眠模式自动唤醒Linux系统。
RTCWake用于输入Linux系统睡眠或者休眠状态,并在特定时间自动将其唤醒。
没有必要再次关闭和电源电源。
只需将系统放入睡眠或者休眠模式,并在指定的时间后回来并开始洞头。
请注意,RTC代表实时时钟。
它实际上是硬件时钟,可以在BIOS中设置。
如果我们有CMOS电池或者BIOS问题,则此命令将无法正常工作。
我们需要在BIOS中设置正确的时间以正确使用RTCWake。
此外,我们需要在使用此实用程序时要小心,因为它需要root权限工作。
任何滥用此实用程序可能会崩溃内核和/或者系统。
使用'rtcwake'实用程序自动从睡眠或者休眠模式唤醒Linux系统
RTCWake通过默认使用大多数Linux操作系统预装,因此不要打扰安装它。
让我告诉你一些实际的例子。
我在我的ARCH Linux桌面上测试了以下命令,并在我预期的情况下工作。
RTCWake命令的典型语法是:
$rtcwake [options] [-d device] [-m standby_mode] {-s seconds|-t time_t}
特定时间后唤醒系统
首先,请确保在运行此程序之前已关闭任何正在运行的程序或者保存任何已打开的文档。
RTCWake命令需要root权限工作。
让我们现在暂停我们的系统并在60秒后唤醒它。
为此,运行:
$sudo rtcwake -m disk -s 60
示例输出将是:
rtcwake: assuming RTC uses UTC ... rtcwake: wakeup from "disk" using /dev/rtc0 at Fri Apr 21 09:04:49 2016
其中
- -m表示模式。
- -s表示系统的唤醒时间。在我们的情况下,我们已经给了60秒。
RTCWake命令支持以下模式。
- 待机 - 这是默认模式,如果我们没有在命令中提及-M切换。该状态提供最小,虽然真实,节能,同时提供非常低延迟的过渡回到工作系统。
- 冻结 - 在此模式下,所有进程都被冻结,所有设备都被暂停,所有处理器都闲置。
- MEM - 暂停到内存。在这种状态下,一切都将被投入低功耗状态,除内存以提供显着的功率节省。保留内存的内容。
- 磁盘 - 暂停到磁盘。该州提供了最大的节能。此状态类似地运行暂停到内存,但包括将内存内容写入磁盘的最终步骤。
- 关闭 - 它完全关闭PC。这是通过调用'/sbin/shutdown'来完成的。 acpi不正式支持,但通常有效。
- 不 - 不要暂停,只设置RTC唤醒时间。
- ON - 不要暂停,但读取RTC设备,直到出现警报时间。此模式对于调试很有用。
- 禁用 - 禁用先前设置的警报。
- 显示 - 以格式打印报警信息:"警报:关闭| on <time>"。例如"闹钟:2016年4月21日15:00:05"。
在特定时间唤醒系统
我们还可以在使用-t选项的特定时间唤醒我们的系统,如下面的示例所示。
$sudo rtcwake -m no -l -t "$(date -d 'today 16:00:00' '+%s')"
其中
- -m no - 此选项不会暂停PC,只设置RTC唤醒时间。
- -L - 表示BIOS中的本地时间。
- -t $(日期+%s -d'今天上午16:00:00') - 将唤醒时间设置为今天下午4点。
有用提示:要了解Linux/UNIX命令中的每个参数,请签出ExplateShell。
如果我们想在明天在特定时间唤醒系统,则该命令将是:
$sudo rtcwake -m no -l -t $(date +%s -d 'tomorrow 10:00')
上面的命令将于明天上午10点唤醒系统,但不会立即暂停它。
在特定的日期和时间唤醒系统:
$sudo rtcwake -m no -l -t "$(date -d '2016-04-25 16:00:00' '+%s')"
此外,我们可以使用"&&"运算符在唤醒系统后运行特定程序,如以下示例所示。
$sudo rtcwake -m mem -s 60 && chromium
上面的命令将我们的系统暂停到内存,并在60秒后唤醒它,并启动Chromium Web浏览器。
凉,不是吗?
有关更多详细信息,请参阅Man页面。
$man rtcwake