🌴 Sync 2026-10-16 01:08:07

This commit is contained in:
github-actions[bot] committed 2026-10-16 01:08:07 +08:00
1 parent f95bba4fb6
commit 16f740db5d
186 files changed
+9575 -5557

No files matched your search

+20 -6
View File
@@ -1,23 +1,36 @@
#!/bin/sh /etc/rc.common
START=99
STOP=10
LOGIN_GUARD=/usr/lib/minigate/login_guard.sh
# === 启动登录防护 watcher(独立子进程) ===
start_login_guard() {
local lg_en=$(uci -q get minigate.login_guard.enabled)
[ "$lg_en" = "1" ] || return 0
# 已在跑则跳过
pgrep -f '/usr/lib/minigate/login_guard.sh run' >/dev/null 2>&1 && return 0
/bin/sh /usr/lib/minigate/login_guard.sh run >/dev/null 2>&1 &
pgrep -f "^/bin/sh ${LOGIN_GUARD} run" >/dev/null 2>&1 && return 0
/bin/sh "$LOGIN_GUARD" run >/dev/null 2>&1 &
logger -t minigate "登录防护已启动"
}
# 先结束子进程:logread -f / tail -f 忽略 SIGPIPE,父 shell 退出后不会自行结束
stop_process_tree() {
local child
for child in $(pgrep -P "$1" 2>/dev/null); do
stop_process_tree "$child"
done
kill "$1" >/dev/null 2>&1
}
# 只匹配实际启动形式;调用方命令行里恰好含有这段文本时(BusyBox pgrep 不排除祖先),不能结束调用方
stop_login_guard() {
local pids
pids=$(pgrep -f '/usr/lib/minigate/login_guard.sh run' 2>/dev/null)
[ -n "$pids" ] && kill $pids >/dev/null 2>&1
local pids pid
pids=$(pgrep -f "^/bin/sh ${LOGIN_GUARD} run" 2>/dev/null)
for pid in $pids; do
stop_process_tree "$pid"
done
sleep 1
pids=$(pgrep -f '/usr/lib/minigate/login_guard.sh run' 2>/dev/null)
pids=$(pgrep -f "^/bin/sh ${LOGIN_GUARD} run" 2>/dev/null)
[ -n "$pids" ] && kill -9 $pids >/dev/null 2>&1
# 移除 nft 中的 drop 规则(保留 set,让现有封禁继续生效到自然过期)
local handle=$(nft -a list chain inet fw4 input 2>/dev/null | grep "minigate-login-guard" | grep -oE 'handle [0-9]+' | awk '{print $2}')
@@ -39,6 +52,7 @@ start() {
echo "*/5 * * * * /bin/sh /usr/lib/minigate/ddns.sh" >> /etc/crontabs/root
echo "0 3 * * * /bin/sh /usr/lib/minigate/acme.sh renew" >> /etc/crontabs/root
echo "*/2 * * * * /bin/sh /usr/lib/minigate/geofence.sh scan" >> /etc/crontabs/root
echo "*/10 * * * * /bin/sh /usr/lib/minigate/proxy.sh trim-logs" >> /etc/crontabs/root
/etc/init.d/cron restart 2>/dev/null
logger -t minigate "已启动"
}