mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-15 03:51:51 +00:00
51 lines
864 B
Text
51 lines
864 B
Text
|
#!/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
|