我希望我的电脑每天 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 秒后计算机暂停