#!/bin/sh # # run graphtft-fe rm -f /tmp/graphtft-fe_stop case "$1" in -k) touch /tmp/graphtft-fe_stop killproc "/usr/bin/graphtft-fe" 10 exit $? ;; -r) killproc "/usr/bin/graphtft-fe" 10 exit $? ;; -n) norestart=1 ;; -*) echo "Usage $0 {-k | -r | -n | -s PROG}" echo " -k kill graphtft-fe" echo " -r restart graphtft-fe" echo " -n no restart if an error occur" exit 1 ;; esac # accept only one instance ps=$(ps); echo "$ps" | grep "{${0##*/}}" | grep -q -v $$ && { echo "${0##*/} is already running"; exit 1; } while [ ! -e /tmp/graphtft-fe_stop ]; do . /etc/rc.config ip=${GRAPHTFT_FE_ARGS#*-h } ip=${ip%% *} while ! { echo quit | nc $ip 2039 &>/dev/null; } do test -e /tmp/graphtft-fe_stop && break; usleep 100000 "#waiting for graphtft"; done test -e /tmp/graphtft-fe_stop && break # schnelle wiederholte Neustarts verzögern if [ 0$starttime -gt $(( `date +%s` - 15 )) ]; then sleep 10 "#delaying graphtft-fe restart" fi starttime=`date +%s` # starte graphtft-fe eval /usr/bin/graphtft-fe $GRAPHTFT_FE_ARGS >>/var/log/graphtft-fe 2>&1 status=$? echo -n "graphtft-fe exits at "; date test "$norestart" = "1" && break test $status = 1 && sleep 3 done rm -f /tmp/graphtft-fe_stop