某些 BIOS 具有在特定“警报”时间从完全关闭状态(未挂起)启动计算机的选项。是否有任何命令或方法可以在 Ubuntu 中进行设置而无需重新启动并进入 BIOS?
(我有一个为学校网络运行的服务器 + 路由器,有时一些随机(善意)的人认为它需要在放学结束时关闭。我想最好的方法是避免在网络随机时间接到电话退出工作是每分钟进行一次 cron 作业,将“警报唤醒”时间设置为 2 分钟后。这样它就会自动启动。)
操作系统本身无法使硬件脱离完全关闭状态,因为当时操作系统并未运行。如果有任何操作系统级别的软件可以写入您的 BIOS,它将是特定于 BIOS 和主板等的专有软件,并且极不可能作为 ubuntu 命令存在。对不起。
BIOS 选项(例如 LAN 唤醒)或自动启动功能是一种选择。另一种是硬件解决方案,类似于某些电视调谐卡通过将硬接线连接到电源按钮以触发开机事件。在这种情况下,可以使用 cron 作业不断更新调谐卡的唤醒时间。
小智 5
简单。首先,您需要检查您的计算机是否支持 RTC 唤醒。过去 10 年中创建的大多数计算机都支持此功能。首先您需要在 BIOS 设置中启用 RTC,这是在启动过程中完成的。在我的 BIOS 上,可以配置唤醒应该响应的 S 信号。因为我喜欢节能,所以我完全让我的电脑在自动启动和关机之间断电。
BIOS 设置完成后,启动 Linux 并发出命令dmesg |grep rtc
。这会告诉您是否启用了 RTC 唤醒。我的输出给出:
~$ dmesg |grep rtc
[ 0.962976] rtc_cmos 00:03: RTC can wake from S4
[ 0.963096] rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
[ 0.963119] rtc0: alarms up to one month, 242 bytes nvram
Run Code Online (Sandbox Code Playgroud)
要设置唤醒时间,您需要是 root。作为根问题命令:
echo 0 > /sys/class/rtc/rtc0/wakealarm
Run Code Online (Sandbox Code Playgroud)
在向文件写入新的唤醒时间之前应使用上述命令,否则唤醒资源会很忙。如果您希望您的计算机在未来 10 分钟内启动,请发出命令:
echo `date '+%s' -d '+ 10 minutes'` > /sys/class/rtc/rtc0/wakealarm
Run Code Online (Sandbox Code Playgroud)
通过发出 来检查是否设置了警报cat /sys/class/rtc/rtc0/wakealarm
。如果您得到一串数字,则表示设置了闹钟,如果文件为空,则日期有问题。
要检查更易读的格式发出命令cat /proc/driver/rtc
。
因此,如果您希望您的计算机在有人关闭计算机 2 分钟后启动,请从您的 crontab 执行一个类似于以下内容的脚本(此脚本需要 root 访问权限,因此请注意):
#!/bin/bash
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo `date '+%s' -d '+ 2 minutes'` > /sys/class/rtc/rtc0/wakealarm
Run Code Online (Sandbox Code Playgroud)
拯救地球。:)
归档时间: |
|
查看次数: |
4629 次 |
最近记录: |