Files
ykxmz/_build/faster_watchdog.sh
T
xmz7891 b630028112 看门狗检查间隔 20 秒 -> 10 秒
每次 530 窗口从"出现"到"被看门狗发现并重启",最长要等一个检查周期。
20 秒缩到 10 秒,用户撞上 1033 的概率窗口直接减半。

代价:公网探测从每 20 秒一次变成每 10 秒一次。
这台设备本来就在长轮询,这点流量可以忽略。

设备上已生效(OnUnitActiveSec=10s, AccuracySec=3s)。
2026-10-07 10:27:33 +08:00

43 lines
1.4 KiB
Bash

#!/bin/bash
# watchdog 检查间隔 20 秒 -> 10 秒
#
# 为什么:每次 530 窗口从"出现"到"被看门狗发现并重启",
# 最长要等一个检查周期。20 秒 -> 10 秒,用户撞上 1033 的
# 概率窗口直接减半。
#
# 代价:curl 更频繁(每 10 秒一次公网请求)。
# 这台设备 4G 流量很小,而且本来就一直在长轮询,可以忽略。
set -u
echo " 改前:"
grep -E 'OnBootSec|OnUnitActiveSec|AccuracySec' /etc/systemd/system/lanremote-watchdog.timer | sed 's/^/ /'
cat > /etc/systemd/system/lanremote-watchdog.timer <<'EOF'
[Unit]
Description=每 10 秒检查一次隧道连接数
[Timer]
# 20 秒 -> 10 秒:从"出问题"到"被重启"的等待窗口减半。
# 开机后 45 秒开始第一次(隧道一般几十秒就连上了)。
OnBootSec=45s
OnUnitActiveSec=10s
AccuracySec=3s
Unit=lanremote-watchdog.service
[Install]
WantedBy=timers.target
EOF
systemctl daemon-reload
systemctl restart lanremote-watchdog.timer
echo
echo " 改后:"
grep -E 'OnBootSec|OnUnitActiveSec|AccuracySec' /etc/systemd/system/lanremote-watchdog.timer | sed 's/^/ /'
echo " 定时器状态: $(systemctl is-active lanremote-watchdog.timer)"
systemctl list-timers lanremote-watchdog.timer --no-pager 2>/dev/null | head -3 | sed 's/^/ /'
echo
echo " 立即跑一次确认不报错:"
bash /root/lanremote-relay/watchdog.sh 2>&1 | tail -2 | sed 's/^/ /'