1#!/bin/sh 2### BEGIN INIT INFO 3# Provides: kadnode 4# Required-Start: $syslog $local_fs $network $named 5# Required-Stop: $syslog $local_fs 6# Default-Start: 2 3 4 5 7# Default-Stop: 0 1 6 8# Short-Description: Start/stop KadNode DNS service 9### END INIT INFO 10 11# Author: Moritz Warning <moritzwarning@web.de> 12 13 14CONFIG_FILE="/etc/kadnode/kadnode.conf" 15PATH=/sbin:/usr/sbin:/bin:/usr/bin 16DESC="P2P DNS resolver" 17NAME=kadnode 18PIDFILE=/var/run/$NAME.pid 19DAEMON=/usr/bin/$NAME 20SCRIPTNAME=/etc/init.d/$NAME 21VERBOSE="yes" 22 23# Exit if the package is not installed 24[ -x "$DAEMON" ] || exit 0 25 26# Read configuration variable file if it is present 27[ -r /etc/default/$NAME ] && . /etc/default/$NAME 28 29 30# Define LSB log_* functions. 31# Depend on lsb-base (>= 3.2-14) to ensure that this file is present 32# and status_of_proc is working. 33. /lib/lsb/init-functions 34 35 36do_start() 37{ 38 # Return 39 # 0 if daemon has been started 40 # 1 if daemon was already running 41 # 2 if daemon could not be started 42 43 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ 44 || return 1 45 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ 46 --daemon --pidfile "$PIDFILE" ${CONFIG_FILE:+--config "$CONFIG_FILE"} \ 47 || return 2 48} 49 50do_stop() 51{ 52 # Return 53 # 0 if daemon has been stopped 54 # 1 if daemon was already stopped 55 # 2 if daemon could not be stopped 56 # other if a failure occurred 57 58 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME 59 RETVAL="$?" 60 [ "$RETVAL" = 2 ] && return 2 61 62 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON 63 [ "$?" = 2 ] && return 2 64 65 rm -f $PIDFILE 66 return "$RETVAL" 67} 68 69case "$1" in 70 start) 71 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" 72 do_start 73 case "$?" in 74 0|1) 75 [ "$VERBOSE" != no ] && log_end_msg 0 76 exit 0 77 ;; 78 2) 79 [ "$VERBOSE" != no ] && log_end_msg 1 80 exit 1 81 ;; 82 esac 83 ;; 84 stop) 85 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" 86 do_stop 87 case "$?" in 88 0|1) 89 [ "$VERBOSE" != no ] && log_end_msg 0 90 exit 0 91 ;; 92 2) 93 [ "$VERBOSE" != no ] && log_end_msg 1 94 exit 1 95 ;; 96 esac 97 ;; 98 status) 99 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? 100 ;; 101 restart|force-reload) 102 $0 stop 103 $0 start 104 ;; 105 *) 106 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 107 exit 3 108 ;; 109esac 110 111exit 0 112