Answers:
您可以使用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
并将其安排在根目录的crontab中。
是否要将Linux PC置于睡眠或休眠模式并在特定时间自动唤醒?您可以使用rtcwake命令轻松地执行此操作,大多数Linux系统默认包含该命令。
如果您希望计算机在特定时间执行某项操作,但又不想24/7全天候运行,则此功能很有用。例如,您可以让计算机在晚上入睡,并在执行某些下载之前将其唤醒。
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外,所有其他设备都进入低功耗状态。内存中的内容将保留。
disk –挂起到磁盘。内存中的内容将写入磁盘,并且计算机已关闭电源。计时器完成后,计算机将打开电源并恢复其状态。
关闭 –完全关闭计算机。rtcwake的手册页指出,ACPI规范不正式支持从“ off”进行还原,但是无论如何,这适用于许多计算机。
否 –不要立即挂起计算机,只需设置唤醒时间即可。例如,您可以告诉计算机在早上6点醒来。之后,可以将其手动设置为晚上11点或凌晨1点-无论哪种方式,它将在早上6点醒来。
该-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’)
因此,如果有人感兴趣,这就是我发现的有效方法,而无需安装任何程序且无需以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秒后挂起计算机