如何让您的Linux PC自动从睡眠中唤醒

想要让您的Linux PC进入睡眠或休眠模式,并让它在特定时间自动唤醒吗?您可以使用rtcwake命令轻松完成此操作,该命令默认包含在大多数Linux系统中。

如果您希望您的计算机在特定时间执行某些操作,但不希望它全天候运行,这会很有用。例如,您可以在晚上将计算机置于睡眠状态,并在执行某些下载之前将其唤醒。

使用rtcwake

rtcwake命令需要root权限,因此它必须在Ubuntu和其他从Ubuntu派生的发行版上与sudo一起运行。在不使用sudo的Linux发行版上,您必须首先以root用户身份使用su命令登录。

以下是该命令的基本语法:

例如,以下命令将您的系统挂起到磁盘(将其休眠),并在60秒后将其唤醒:

挂起的类型

-m开关接受以下类型的挂起:

STANDBY-STANDBY节省的电量很少,但恢复到正在运行的系统非常快。如果省略-m开关,则这是默认模式。 内存-挂起到RAM。这提供了显著的节能效果-除RAM外,所有设备都处于低功耗状态。你的记忆内容会被保存下来。 磁盘-挂起到磁盘。您的内存内容将写入磁盘,并且您的计算机将关闭电源。当计时器结束时,计算机将打开,其状态将恢复。 关闭-完全关闭计算机。rtcwake的手册页指出,ACPI规范并不正式支持从“关闭”状态进行恢复,但无论如何,这可以在许多计算机上使用。 否-不要立即挂起计算机,只需设置唤醒时间即可。例如,您可以告诉您的计算机在早上6点起床。之后,可以在晚上11点或凌晨1点手动将其设置为睡眠状态-无论哪种方式,它都会在早上6点醒来

秒数与特定时间

s选项在将来需要几秒钟的时间。例如,-s 60在60秒内唤醒您的计算机,而-s 3600在一小时内唤醒您的计算机。

t选项允许您在特定时间唤醒计算机。此开关需要自Unix纪元(1970年1月1日00:00:00 UTC)以来的秒数。要轻松提供正确的秒数,请将date命令与rtcwake命令结合使用。

l开关告诉rtcwake硬件时钟被设置为本地时间,而-u开关告诉rtcwake硬件时钟(在您的计算机的BIOS中)被设置为UTC时间。Linux发行版通常将您的硬件时钟设置为UTC时间,并将其转换为您的本地时间。

例如,要让您的计算机在明天早上6:30醒来但不立即挂起(假设您的硬件时钟设置为本地时间),请运行以下命令:

更多提示

使用&&运算符在rtcwake将系统从睡眠中唤醒后运行特定命令。例如,以下命令将您的计算机挂起到RAM,两分钟后将其唤醒,然后启动Firefox:

将rtcwake命令集成到cron脚本中,以便在特定时间自动唤醒您的计算机。在cron脚本中,-mno开关也很有用。例如,您可以每天晚上10点在cron脚本中运行rtcwake-mno-s 28800命令。这会将您的计算机设置为在28800秒后6:00唤醒。然而,你的电脑不会立即进入睡眠状态--你可以让它在晚上11点或凌晨1点进入睡眠状态,但正常情况下,它仍然会在早上6点醒来。

警告

RTC代表实时时钟。RTCwake使用您计算机的硬件时钟(您可以在BIOS中设置)来确定您的计算机将在何时唤醒。如果你使用的是一台旧电脑,它的CMOS电池快没电了,不能让时钟正常运转,这是行不通的。 如果休眠、挂起到RAM或休眠在您的Linux系统上无法正常工作-可能是因为Linux没有驱动程序使它们在您的硬件上正常工作-这可能不起作用。 将笔记本电脑设置为在特定时间自动唤醒时要小心。您不会希望它醒来、运行、过热或耗尽笔记本电脑包中的电池。

相关文章