在挂起至 RAM 模式下 24 小时后关闭服务器电源

在挂起至 RAM 模式下 24 小时后关闭服务器电源

我买了一台吵闹、耗电的家庭服务器。理想情况下,我希望它在我不使用它时准确关闭,并在我使用它时准确打开。

这个理想的场景是不可能的,所以我想出了一个不太理想但也更有可能的场景。

基于 https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface我希望系统检测到空闲状态(例如,15 分钟负载 <= 0.01),然后它应该暂停到两者(混合暂停或 S4 后跟 S3)。让我们假设我可以让它发挥作用。

这样它就可以很快被网络唤醒唤醒并供我使用。

但是如果系统24小时没有使用,那么我希望系统从S3+4状态进入S5(软关机),这样下次服务器被唤醒(通过wake-on-lan)时,它可以从 S4 状态(挂起到磁盘)恢复。

有没有办法做到这一点?

也许 ACPI 控制器中有一个我可以激活的计时器,以便它在暂停 24 小时后关闭(除非它当前正在运行)。

或者我可以告诉 BIOS 从现在起 24 小时后关闭计算机并每小时更新一次?

或者是一个看门狗,如果 24 小时内没有被触碰,就会关闭服务器电源?

或者是否有另一种方法可以在计算机已经处于挂起至 RAM 状态时强制计算机软关闭?

编辑

解决方法可能是让另一台计算机(例如接入点)使用服务器中的 iDRAC 来关闭服务器。不太理想,但可能适合我的具体情况。然后,服务器应在启动时和每小时告诉接入点在 24 小时内关闭服务器电源。

答案1

要执行挂起到磁盘,您必须完全唤醒,打开磁盘电源以将休眠数据写入其中。

可能的解决方案:

  • 将 BIOS 设置为每天在给定时间唤醒
  • /etc/pm/sleep.d添加将使用thaw或调用的脚本resume
  • 该脚本检查标记文件 ( touch /run/wakeuptime) 并:
    • 标记文件存在且已存在 24 小时(*):开始休眠
    • 否则创建标记 ( touch /run/wakeuptime) 并暂停

理想情况下,您可以告诉 BIOS 仅在系统处于 S3 时唤醒,而在 S4 时保持睡眠状态。

(*) 为此我会使用[[ -n $(find /run -maxdepth 1 -path /run/wakeuptime -mmin -1440) ]].

相关内容