mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-15 03:51:51 +00:00
50 lines
864 B
Bash
Executable file
50 lines
864 B
Bash
Executable file
#!/bin/sh
|
|
# vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 :
|
|
|
|
name=$0
|
|
basename="$(basename $0)"
|
|
|
|
usage() {
|
|
printf "Usage: %s: [-t TIMEOUT] [-v INTERVAL] [ -r RETRY ] HOST\n" "${name}"
|
|
exit 2
|
|
}
|
|
|
|
log() {
|
|
logger -p daemon.info -t "${basename}" "$@"
|
|
}
|
|
|
|
uri="ping"
|
|
timeout=5
|
|
interval=1
|
|
retry=0
|
|
|
|
while getopts "t:v:r:" opt; do
|
|
case $opt in
|
|
t) timeout="${OPTARG}";;
|
|
v) interval="${OPTARG}";;
|
|
r) retry="${OPTARG}";;
|
|
*) usage;;
|
|
esac
|
|
done
|
|
|
|
shift $((OPTIND - 1))
|
|
|
|
[ -z "$1" ] && usage
|
|
|
|
last=0
|
|
|
|
log "Starting..."
|
|
|
|
while true; do
|
|
if curl -s --max-time "${timeout}" --retry "${retry}" "$1/${uri}" &>/dev/null ; then
|
|
[ ${last} = 0 ] && log "Shadowsocks is up"
|
|
/etc/init.d/shadowsocks ifup 2> /dev/null
|
|
last=1
|
|
else
|
|
[ ${last} = 1 ] && log "Shadowsocks is down"
|
|
/etc/init.d/shadowsocks ifdown 2> /dev/null
|
|
last=0
|
|
fi
|
|
|
|
sleep "${interval}"
|
|
done
|