Files
small-packages/luci-app-passwall/root/usr/share/passwall/haproxy_check.sh
T
action 7ae707aaa6
marry-jell / merge (push) Canceled after 0s
update 2026-10-11 00:49:02
2026-10-11 00:49:02 +08:00

35 lines
849 B
Bash
Executable File

#!/bin/sh
export PATH=/usr/sbin:/usr/bin:/sbin:/bin:/root/bin
. /usr/share/passwall/utils.sh
listen_address=$1
listen_port=$2
server_address=$3
server_port=$4
busybox pgrep -af "${CONFIG}/" | grep -E 'app\.sh.*(start|stop)|nftables\.sh|iptables\.sh|subscribe\.lua' >/dev/null && {
# 特定任务执行中不检测
exit 0
}
probeUrl=$(get_cache_var "HAPROXY_PROBE_URL")
probeUrl="${probeUrl:-https://www.google.com/generate_204}"
case "$server_address" in
\[*\]) ;;
*:*) server_address="[$server_address]" ;;
esac
# 每轮只探测一次,连续成功/失败由 HAProxy 的 rise/fall 判定。
status=$(/usr/bin/curl -q -I -o /dev/null -sk --noproxy "" -x "socks5h://${server_address}:${server_port}" --connect-timeout 3 --max-time 6 -w "%{http_code}" "$probeUrl") || exit 1
case "$status" in
200|204)
exit 0
;;
*)
exit 1
;;
esac