mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-13 11:01:50 +00:00
38 lines
912 B
Bash
Executable file
38 lines
912 B
Bash
Executable file
#!/bin/sh
|
|
# vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
|
|
|
|
name=$0
|
|
basename="$(basename $0)"
|
|
|
|
log() {
|
|
logger -p daemon.info -t "${basename}" "$@"
|
|
}
|
|
|
|
timeout=${OMR_TRACKER_TIMEOUT:-5}
|
|
interval=${OMR_TRACKER_INTERVAL:-10}
|
|
retry=${OMR_TRACKER_TRIES:-4}
|
|
proxy=${OMR_TRACKER_PROXY:-127.0.0.1:1111}
|
|
hosts=${OMR_TRACKER_HOSTS:-1.1.1.1 1.0.0.1 23.96.52.53}
|
|
|
|
nodns=0
|
|
|
|
last=0
|
|
|
|
while true; do
|
|
host="${hosts%% *}"
|
|
[ "$host" = "$hosts" ] || {
|
|
hosts="${hosts#* } $host"
|
|
}
|
|
if curl -s --socks5 "${proxy}" --max-time "${timeout}" "$host" &>/dev/null ; then
|
|
[ "${last}" -ge "${retry}" ] && log "Shadowsocks is up (can contact ${host})"
|
|
/etc/init.d/shadowsocks-libev rules_up 2> /dev/null
|
|
last=0
|
|
else
|
|
last=$((last + 1 ))
|
|
[ "${last}" -eq "${retry}" ] && {
|
|
log "Shadowsocks is down (can't contact ${host})"
|
|
/etc/init.d/shadowsocks-libev rules_down 2> /dev/null
|
|
}
|
|
fi
|
|
sleep "${interval}"
|
|
done
|