#!/bin/sh ### BEGIN INIT INFO # Provides: smartdns # Required-Start: $network # Required-Stop: $network # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Start smartdns server ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin . /etc/default/smartdns SMARTDNS=/usr/sbin/smartdns PIDFILE=/var/run/smartdns.pid test -x $SMARTDNS || exit 5 case $1 in start) $SMARTDNS $SMART_DNS_OPTS while true; do if [ -e "$PIDFILE" ]; then break; fi sleep .5 done PID="`cat $PIDFILE 2>/dev/null`" if [ -z "$PID" ]; then echo "start smartdns server failed." exit 1 fi if [ ! -e "/proc/$PID" ]; then echo "start smartdns server failed." exit 1 fi echo "start smartdns server success." ;; stop) if [ ! -f "$PIDFILE" ]; then echo "smartdns server is stopped." exit 0 fi PID="`cat $PIDFILE 2>/dev/null`" if [ ! -e "/proc/$PID" ] || [ -z "$PID" ]; then echo "smartdns server is stopped" exit 0 fi kill -TERM $PID if [ $? -ne 0 ]; then echo "Stop smartdns server failed." exit 1; fi rm -f $PIDFILE echo "Stop smartdns server success." ;; restart) $0 stop && sleep 1 && $0 start ;; status) PID="`cat $PIDFILE 2>/dev/null`" if [ ! -e "/proc/$PID" ] || [ -z "$PID" ]; then echo "smartdns server is not running." exit 1 fi echo "smartdns server is running." status=$? ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 2 ;; esac exit $status