问题描述
我希望我的PC每天都在04:58入睡,并在05:15醒来。
我怎么做?
最佳方法
您可以使用Gnome Schedule执行(至少完成一半)。 (sudo apt-get install gnome-schedule
)(注意:尽管输入gnome-schedule仍会启动它,但它已作为计划任务放入启动器中。)
启动后,”New”-> “Recurrent Task”。填写合适的表格。
休眠命令为/usr/sbin/pm-hibernate
(挂起为/usr/sbin/pm-suspend
)
关于再次唤醒,请参阅“How do I schedule waking up from hibernation?”
或者,您可以安装“电源管理界面”。 (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
并将其安排在根目录的crontab中。
次佳方法
如何使Linux PC自动从睡眠中唤醒
是否要将Linux PC置于睡眠或休眠模式,并使其在特定时间自动唤醒?您可以使用rtcwake命令轻松地执行此操作,大多数Linux系统默认包含该命令。
如果您希望计算机在特定时间执行某项操作,但又不想24/7全天候运行,则此功能很有用。例如,您可以让计算机在晚上入睡,并在执行某些下载之前将其唤醒。
使用rtcwake
rtcwake命令需要root权限,因此必须在Ubuntu和其他Ubuntu-derived发行版中使用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外,所有其他设备都进入low-power状态。内存中的内容将保留。
disk –挂起到磁盘。内存中的内容将写入磁盘,并且计算机已关闭电源。计时器完成后,计算机将打开电源并恢复其状态。
关闭–完全关闭计算机。 rtcwake的手册页指出,ACPI规范并未正式支持从“off”进行还原,但是无论如何,这都适用于许多计算机。
否-不要立即挂起计算机,只需设置唤醒时间即可。例如,您可以告诉您的计算机在早上6点醒来。之后,可以将其手动设置为晚上11点或凌晨1点-无论哪种方式,它将在早上6点醒来。
秒vs.特定时间
-s选项将在未来花费几秒钟。例如,-s 60在60秒内唤醒计算机,而-s 3600在一个小时内唤醒计算机。
-t选项使您可以在特定时间唤醒计算机。自Unix时代(1970年1月1日UTC:00:00:00)以来,此开关需要几秒钟的时间。为了轻松提供正确的秒数,请将date命令与rtcwake命令结合使用。
-l开关告诉rtcwake硬件时钟设置为本地时间,而-u开关告诉rtcwake硬件时钟(在计算机的BIOS中)设置为UTC时间。 Linux发行版通常将您的硬件时钟设置为UTC时间,并将其转换为您的本地时间。
例如,要使您的计算机明天早上6:30醒来但不立即挂起(假设您的硬件时钟设置为本地时间),请运行以下命令:
sudo rtcwake -m no -l -t $(date +%s -d ‘tomorrow 06:30’)