#!/sbin/runscript # control n instances of dnscache, without daemontools # written for alpine linux - NBA April 2007 # -- Statrup variables UID=$( grep dnscache /etc/passwd | cut -f3 -d: ) GID=$( grep dnscache /etc/group | cut -f3 -d: ) ROOT=/etc/dnscache DAEMON=/usr/bin/dnscache VARRUN=/var/run/dnscache #----------------------------------------------------------------- # Main program start() { ebegin "Starting dnscache" if [ -z "$UID" ] || [ -z "$GID" ]; then eend 1 "dnscache user or group missing" return 1 fi # if its already running, just report it is if [ -e ${VARRUN}.pid ] && [ -d /proc/$( cat ${VARRUN}.pid ) ]; then eend 0 return 0 fi ( export UID GID ROOT [ -n "$IPSEND" ] && export IPSEND [ -n "$IP" ] && export IP [ -n "$HIDETTL" ] && export HIDETTL [ -n "$IPSEND" ] && export IPSEND [ -n "$CACHESIZE" ] && export CACHESIZE [ -n "$FORWARDONLY" ] && export FORWARDONLY $DAEMON /dev/null 2>/dev/null & pid=$! sleep 1 # Check if its still running if ! [ -d /proc/$pid ]; then $DAEMON ${VARRUN}.pid eend $? return 0 ) } stop() { ebegin "Stopping dnscache" start-stop-daemon --stop -m --pidfile ${VARRUN}.pid --oknodo \ --exec $DAEMON && rm ${VARRUN}.pid eend $? }