在特定时间暂停和唤醒 PC

One*_*ero 24 suspend sleep schedule wakeup

我希望我的电脑每天 04:58 入睡并在 05:15 醒来。

我怎么做?

One*_*ero 25

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

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

如果您希望计算机在特定时间执行某些操作,但又不希望它 24/7 全天候运行,这将非常有用。例如,您可以让您的计算机在晚上进入睡眠状态,然后在您执行某些下载之前将其唤醒。

使用 rtcwake

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

这是命令的基本语法:

sudo rtcwake -m [type of suspend] -s [number of seconds]
Run Code Online (Sandbox Code Playgroud)

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

sudo rtcwake -m disk -s 60
Run Code Online (Sandbox Code Playgroud)

暂停类型

-m开关接受下列类型的中止:

待机– 待机几乎不节能,但恢复到正在运行的系统非常快。如果省略 -m 开关,则这是默认模式。

mem – 暂停到 RAM。这提供了显着的节能效果——除了您的 RAM 之外,所有东西都被置于低功耗状态。您的记忆内容将被保留。

磁盘– 挂起到磁盘。您的内存内容被写入磁盘,您的计算机已关闭。当计时器完成时,计算机将打开并恢复其状态。

off – 完全关闭计算机。rtcwake 的手册页指出 ACPI 规范不正式支持从“关闭”恢复,但无论如何这适用于许多计算机。

no – 不要立即挂起计算机,只需设置唤醒时间即可。例如,您可以告诉您的计算机在早上 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 唤醒但不立即挂起(假设您的硬件时钟设置为本地时间),请运行以下命令:

sudo rtcwake -m no -l -t $(date +%s -d ‘tomorrow 06:30’)
Run Code Online (Sandbox Code Playgroud)

帮助

  • 当您从网站复制粘贴时,请至少提供网址:http://www.howtogeek.com/121241/how-to-make-your-linux-pc-wake-from-sleep-automatically/ (7认同)

Joh*_*ohn 9

您可以使用Gnome Schedule来完成(至少一半)。( sudo apt-get install gnome-schedule) (注意:它会作为Scheduled Tasks放入您的启动器,尽管输入gnome-schedule仍然会显示它。)

启动后,“新建”->“循环任务”。填写您认为合适的表格。

休眠的命令是/usr/sbin/pm-hibernate(Suspend is /usr/sbin/pm-suspend)

关于再次醒来,请参阅“如何安排从休眠状态中醒来?”


或者,您可以安装“电源管理界面”。( sudo apt-get install powermanagement-interface)

然后创建一个这样的脚本:

#!/bin/bash
# This script puts the system under standby mode for x hours
usage() {
echo "usage: $0 <n-hours>"
echo "where <n-hours> is the number of hours to be on standby"
exit 0

}
if [ $# -ne 1 ]
then
usage
fi

PATH=$PATH:/usr/sbin
hours=$1
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo `date '+%s' -d "+ $hours hours"` > /sys/class/rtc/rtc0/wakealarm
## Edit the above line to get the exact length of hibernation you want
pmi action suspend
Run Code Online (Sandbox Code Playgroud)

并将其安排在根的 crontab 中。

来源