在特定时间挂起和唤醒 PC

在特定时间挂起和唤醒 PC

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

我怎么做?

答案1

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

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

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

使用 rtcwake

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

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

sudo rtcwake -m [type of suspend] -s [number of seconds]

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

sudo rtcwake -m disk -s 60

暂停类型

-m交换机接受以下类型的暂停:

支持– 待机模式几乎不节省电量,但​​恢复到正在运行的系统非常快。如果省略 -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 唤醒但不立即挂起(假设您的硬件时钟设置为本地时间),请运行以下命令:

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

帮助

答案2

你可以用以下方法完成(至少一半)侏儒日程表. (sudo apt-get install gnome-schedule)(注意:它会被放入你的启动器中计划任务,尽管输入gnome-时间表仍然会提起它。)

启动后,“新建”->“循环任务”,按自己需要填写即可。

休眠的命令是/usr/sbin/pm-hibernate(挂起是/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

并将其安排在 root 的 crontab 中。

来源

答案3

您可以尝试设置 BIOS 以进行唤醒事件,几乎每个主板都有该功能,使用您的 mb 手册并弄清楚,在某些 AMI bios 中,它被称为通过 RTC 警报唤醒,我认为这是在特定时间唤醒 PC 的简单方法

答案4

因此,如果有人感兴趣的话,这就是我发现的有效方法,无需安装任何东西,也不需要root身份。

使用此命令代码:

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

要延迟它,请使用 sleep 命令以及带有 smh 或 d (秒、分、天、小时)的数字和 ;

示例代码:

sleep 60s; dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

60 秒后计算机暂停

相关内容