跳转到内容

自动关机与定时唤醒 ​

完成后,NAS 在没人用的时候自动关机,在你需要的时间自动开机。这靠三个 omv-extras 插件分工:autoshutdown 判断「现在是不是空闲」并关机,wakealarm 用主板的实时时钟(RTC)在计划的时间唤醒,wol 向局域网里的其他设备发送网络唤醒包。

适合谁 ​

  • NAS 每天只在固定时段使用,想省电。

先想清楚是不是真的需要关机:

  • 频繁启停会增加硬盘的启停次数,也让备份、下载、容器服务、SnapRAID 同步都得绕开关机时间。
  • 只想让硬盘空闲时停转,用 系统 → 电源管理(System → Power Management)和硬盘休眠就够了,见 电源管理:硬盘休眠与定时开关机。
  • 想要的是低功耗和静音,看 低功耗与静音。

关机插件会中断任务,而且有已知缺陷

  • 影响范围:判断为空闲时整台 NAS 会被关掉,进行中的下载、备份、同步、阵列重建、容器任务都会被打断。截至 2026-10-22,autoshutdown 在 GitHub 上有多条未关闭的问题,包括:端口检查分不清本机套接字和网络端口、SMART 检查对 SSD 误报、受监控的进程还在运行却被关机、ZFS 池磁盘的 I/O 检查不起作用。不要指望它保证「有任务时绝不关机」。
  • 前置条件:主板 BIOS 支持并开启了 RTC 唤醒;先用下面的 模拟(Fake)模式观察几天,确认判断符合预期;把备份、同步这类计划任务安排在「强制运行时间」之内;重建阵列、升级系统期间先停用。
  • 怎么回退:取消勾选 启用,保存并应用。关机后唤醒失败,只能到机器旁边按电源键,所以先做完下面的唤醒测试再启用。

插件信息 ​

插件包名截至 2026-10-22 的版本菜单位置
自动关机openmediavault-autoshutdown8.0服务 → 自动关机(Services → AutoShutdown)
计划唤醒openmediavault-wakealarm8.0.3服务 → 计划闹钟(Services → Scheduled Alarms)
网络唤醒openmediavault-wol8.0服务 → 网络唤醒(Services → WOL)

三个都来自 omv-extras,amd64 和 arm64 均有。先装 omv-extras,再到 系统 → 插件(System → Plugins)里按需安装。autoshutdown 依赖 fping、jq、net-tools、pm-utils、sysstat;wakealarm 依赖 python3-croniter;wol 依赖 etherwake、nast、wakeonlan、util-linux。这三个插件在 omv-extras wiki 里都没有文档。

先确认硬件能被唤醒 ​

关机之后能不能自动开机,取决于主板和网卡。启用关机插件之前先测:

  1. RTC 唤醒:在 BIOS 里找 Resume by RTC alarm、Power on by RTC 这类选项并开启。然后在 OMV 的 shell(root)里:
sh
# 在 OMV 的 shell 里执行(root)。这会关掉 NAS,先确认没有任务在运行
rtcwake -m no -s 180       # 设定 3 分钟后唤醒,不进入休眠
systemctl poweroff

3 分钟后机器自己开机,说明 RTC 唤醒可用。没有开机,要按电源键,并回去检查 BIOS,这台机器不适合依赖定时唤醒。

  1. 网络唤醒(WOL):想从别的设备唤醒这台 NAS,要在 BIOS 里开启 Wake-on-LAN,并在 网络 → 接口(Network → Interfaces)里勾选这块网卡的 网络唤醒 WOL(Wake-on-LAN),见 网络接口。注意:服务 → 网络唤醒 插件是用来唤醒别的设备的。

autoshutdown:空闲就关机 ​

它怎么判断 ​

脚本每隔一段时间(默认 180 秒)检查一轮,一轮叫一个周期。一个周期里的检查项按优先级从高到低依次执行:

  1. 是否在强制运行时间内(在时段内就不关)
  2. 局域网里有没有指定范围的 IP 在线
  3. 有没有指定端口上的连接、有没有登录的用户、SMB 有没有客户端
  4. 网络上下行速率
  5. 硬盘 I/O、SMART 自检是否在运行
  6. 指定的进程是否在运行
  7. 用户自定义的插件检查

**任何一项判断为「有活动」,就重置周期计数;全部为「没有活动」,计数减一,减到 0 就关机。**所以 周期 乘以 秒数,就是空闲多久后关机。

配置 ​

服务 → 自动关机。下面的默认值取自插件的数据库初始化脚本,表单里的个别初值与它不同,以你界面上显示的为准:

字段默认值说明
启用(Enable)关
周期(Cycles)6连续多少个周期没有活动就关机
秒(Seconds)180每个周期之间等多少秒
关机命令(Shutdown command)关机也可选冬眠(Hibernate)、暂停(Suspend)、混合休眠、挂起休眠,必须是硬件和内核支持的才能用
强制运行时间(Forced Uptime)关,06:00 到 20:00勾选后,这个时段内永远不关机
唤醒闹钟(Wake Alarm)关,08:00关机前设置第二天的 RTC 唤醒时间
IP 范围(IP-Range)开,2..254,0x0..0xFFFF范围内有设备在线就不关机
端口(Sockets)开,21,22,80,3689,6991,9091,49152这些端口上有连接就不关机
ULDL 率(ULDL Rate)开,50 kB/s网络速率超过它就不关机
HDD-IO开,401 kB/s硬盘 I/O 超过它就不关机
平均负载(Load Average)关
激活进程(Active Processes)开有 smbd、nfsd 等进程在忙就不关机,可在 进程(Load processes)里调整
SMB 状态、用户开有 SMB 客户端连接、有用户登录就不关机
Smart 自检、插件关
记录到系统日志开
详细(Verbose)、模拟(Fake)关

最常见的问题是它永远不关机,因为默认的判断太宽:

  • IP 范围默认覆盖整个网段的 2 到 254 号地址,手机、电视、物联网设备只要在线就算有活动。改成只填你的电脑的地址或范围,不需要的关掉。
  • 端口里的 80 是 OMV 的 Web 界面,开着 Web 界面的标签页可能就一直有连接。
  • 用户 登录着 SSH,也算有活动。

先用模拟模式 ​

勾选 模拟(Fake),保存并应用。这时脚本照常判断,会在日志里写出每一步的结果,但不会真正关机,也不会设置唤醒时间。连续观察几天,看它在你觉得空闲的时候是否确实判断为空闲,再取消模拟。

wakealarm:按计划唤醒 ​

服务 → 计划闹钟 里每条记录是一个 cron 风格的时间表:分钟、小时、日期、月份、星期,加一个注释。插件每分钟运行一次,从所有启用的计划里取下一次最近的时间,写进 /sys/class/rtc/rtc0/wakealarm,并且至少要在两分钟之后。它只设置唤醒时间,不负责关机,关机由 autoshutdown,或 系统 → 电源管理 → 计划任务(System → Power Management → Scheduled Tasks)里的计划关机来做。

autoshutdown 的唤醒闹钟和 wakealarm 都在写同一个 RTC 闹钟。 两个同时开,哪个生效没有文档说明,请只用一个。

wol:唤醒别的设备,或让本机待机后定时唤醒 ​

服务 → 网络唤醒 有一张设备表(名称、MAC 地址、IP 地址),工具栏有:

  • 扫描(Scan):在默认路由所在的网卡上扫描局域网里的主机,把发现的设备加入列表。
  • 发送(Send):选中设备,选一块网卡,发出魔术包。
  • 计划 rtcwake(Schedule rtcwake):让本机进入待机模式,并在指定时间唤醒。模式有待机(S1)、挂起到内存(S3)、挂起到硬盘(S4)、关机(S5)、「不挂起,只设置唤醒时间」,以及一个调试用的模式。选关机会让这台 NAS 立刻关机。

检查结果 ​

  1. 诊断 → 系统日志(Diagnostics → System Logs)里选 AutoShutdown 类型,或在 OMV 的 shell(root)里只读查看:
sh
# 在 OMV 的 shell 里执行(root)
systemctl status autoshutdown
tail -n 50 /var/log/autoshutdown.log
rtcwake -m show                # 显示 RTC 闹钟的状态
  1. 模拟模式下,日志应显示每一轮是哪一项判断为「有活动」,最后出现 Shutdown command not executed in FAKE-Mode。
  2. 取消模拟后,把设备都放着不动,等一个「周期 乘以 秒」的时间,NAS 应当关机,到了唤醒时间自动开机。
  3. 开机后确认备份、同步这类计划任务没有被错过。

备份与维护 ​

  • 设置都在 OMV 的配置数据库里,没有需要单独备份的数据。
  • 升级 OMV 或做大改动前,先停用自动关机,避免升级到一半被关机。
  • 卸载插件会清除设置。autoshutdown 是 systemd 服务,不再需要时在界面里先取消启用。

常见问题 ​

NAS 一直不关机。 打开模拟模式,看日志里哪一项判断为有活动,通常是 IP 范围、端口、登录用户。

NAS 在我还在用的时候关机了。 这是已知问题之一:有的检查项并不可靠。把它们调严,或者改用「强制运行时间」覆盖你使用的时段。

关机后没有按时开机。 回到「先确认硬件能被唤醒」。再检查是不是同时启用了 autoshutdown 的唤醒闹钟和 wakealarm。

想要夜里自动关机、早上自动开机。 最简单的组合是:wakealarm 设早上的唤醒时间,系统 → 电源管理 → 计划任务 设晚上的关机时间,不启用 autoshutdown。

关机命令选了休眠,唤醒后服务异常。 休眠和挂起对服务器环境不一定稳定,优先用「关机」加 RTC 唤醒。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。