One*_*ero 25
想让您的 Linux PC 进入睡眠或休眠模式并让它在特定时间自动唤醒吗?您可以使用大多数 Linux 系统默认包含的 rtcwake 命令轻松完成此操作。
如果您希望计算机在特定时间执行某些操作,但又不希望它 24/7 全天候运行,这将非常有用。例如,您可以让您的计算机在晚上进入睡眠状态,然后在您执行某些下载之前将其唤醒。
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)
您可以使用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 中。
| 归档时间: |
|
| 查看次数: |
41842 次 |
| 最近记录: |