#!/bin/sh # # 50meow_ntpsync — udhcpc 钩子(M22) # # /usr/share/udhcpc/default.script 结尾会执行 default.script.d/*, # 参数是本轮 DHCP 事件(deconfig|bound|renew|leasefail|nak)。 # 本钩子只在拿到租约(bound/renew)时动作——这是设备上唯一可靠的 # 「网络真的就绪」事件(S40network 阶段 WiFi 还没起来)。 # # 关键:**绝不能阻塞**。default.script 是 udhcpc 同步调用的, # 这里把校时丢后台后立即 exit 0,否则会拖住 DHCP 脚本。 # # $ntpsrv = DHCP option 42(NTP 服务器列表)。 # 实测 2026-11-06 热点不下发(租约环境变量里没有 ntpsrv),企业网可能有; # 有就优先用,没有就走 /usr/bin/meow_ntpsync 里的内置 IP 兜底。 # # 重复触发由 meow_ntpsync 自己的 1 h 短路 + 锁兜住:续租每 30 min 一次, # 最多 1 h 真同步一次,开销可忽略。 # case "$1" in bound|renew) ;; *) exit 0 ;; esac [ -x /usr/bin/meow_ntpsync ] || exit 0 if [ -n "$ntpsrv" ]; then setsid /usr/bin/meow_ntpsync -s "$ntpsrv" >/dev/null 2>&1 & else setsid /usr/bin/meow_ntpsync >/dev/null 2>&1 & fi exit 0