在特定时间暂停和唤醒PC

我希望我的电脑在04:58睡觉,每天05:15醒来。

我怎么做?

你可以用Gnome Schedule做(至少一半)。 ( sudo apt-get install gnome-schedule )(注意:它会作为计划任务放入你的启动器中,虽然键入gnome-schedule仍然可以启动它。)

启动后,“新建” – >“循环任务”。 根据您的需要填写表格。

hibernate的命令是/usr/sbin/pm-hibernate (Suspend是/usr/sbin/pm-suspend

关于再次醒来,请参阅“如何安排从hibernate状态中醒来?”


或者,您可以安装“电源管理界面”。 ( sudo apt-get install powermanagement-interface

然后创建一个这样的脚本:

 #!/bin/bash # This script puts the system under standby mode for x hours usage() { echo "usage: $0 " echo "where  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中安排它。

资源

如何使Linux PC自动从睡眠状态唤醒

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

如果您希望计算机在特定时间执行某些操作但不希望它全天候运行,则此function非常有用。 例如,您可以让计算机在晚上睡觉,并在执行某些下载之前将其唤醒。

使用rtcwake

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

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

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

例如,以下命令将系统挂起到磁盘(hibernate)并在60秒后将其唤醒:

 sudo rtcwake -m disk -s 60 

暂停的类型

-m开关接受以下类型的挂起:

待机 – 待机功耗节省很少,但恢复到正在运行的系统非常快。 如果省略-m开关,则这是默认模式。

mem – 挂起到RAM。 这可以显着节省功耗 – 除RAM外,所有function都处于低功耗状态。 你的记忆内容得以保留。

disk – 挂起到磁盘。 内存中的内容将写入磁盘,并且计算机已关闭。 计时器将打开,并在计时器完成时恢复其状态。

– 完全关闭计算机。 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') 

救命

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

因此,如果有人感兴趣,我发现这是有效的,无需安装任何东西和非root用户。

使用此命令代码:

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

并延迟它使用带有smh或d(秒,分钟,日,小时)和a的数字的sleep命令;

示例代码:

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

60秒后暂停计算机