diff options
Diffstat (limited to 'network/pdns/rc.pdns')
-rw-r--r-- | network/pdns/rc.pdns | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/network/pdns/rc.pdns b/network/pdns/rc.pdns new file mode 100644 index 0000000000..71a8b65330 --- /dev/null +++ b/network/pdns/rc.pdns @@ -0,0 +1,174 @@ +#!/bin/sh + +# Exit if any subcommand or pipeline returns a non-zero status. +set -e + +BINARYPATH=/usr/bin +SBINARYPATH=/usr/sbin +SOCKETPATH=/var/run +DAEMON_ARGS="" + +[ -f "$SBINARYPATH/pdns_server" ] || exit 0 + +[ -r /etc/default/pdns ] && . /etc/default/pdns + +[ "$START" = "no" ] && exit 0 + +# Make sure that /var/run exists +mkdir -p $SOCKETPATH +cd $SOCKETPATH +suffix=$(basename $0 | cut -d- -f2- -s) +if [ -n "$suffix" ] +then + EXTRAOPTS=--config-name=$suffix + PROGNAME=pdns-$suffix +else + PROGNAME=pdns +fi + +pdns_server="$SBINARYPATH/pdns_server $DAEMON_ARGS $EXTRAOPTS" + +doPC() +{ + ret=$($BINARYPATH/pdns_control $EXTRAOPTS $1 $2 2> /dev/null) +} + +NOTRUNNING=0 +doPC ping || NOTRUNNING=$? + +case "$1" in + status) + if test "$NOTRUNNING" = "0" + then + doPC status + echo $ret + else + echo "not running" + exit 3 + fi + ;; + stop) + echo -n "Stopping PowerDNS authoritative nameserver: " + if test "$NOTRUNNING" = "0" + then + doPC quit + echo $ret + else + echo "not running" + fi + ;; + force-stop) + echo -n "Stopping PowerDNS authoritative nameserver: " + killall -v -9 pdns_server + echo "killed" + ;; + start) + echo -n "Starting PowerDNS authoritative nameserver: " + if test "$NOTRUNNING" = "0" + then + echo "already running" + else + if $pdns_server --daemon --guardian=yes + then + echo "started" + else + echo "starting failed" + exit 1 + fi + fi + ;; + force-reload | restart) + echo -n "Restarting PowerDNS authoritative nameserver: " + if test "$NOTRUNNING" = "1" + then + echo "not running, starting" + else + echo -n stopping and waiting.. + doPC quit + sleep 3 + echo done + fi + $0 start + ;; + reload) + echo -n "Reloading PowerDNS authoritative nameserver: " + if test "$NOTRUNNING" = "0" + then + doPC cycle + echo requested reload + else + echo not running yet + $0 start + fi + ;; + monitor) + if test "$NOTRUNNING" = "0" + then + echo "already running" + else + $pdns_server --daemon=no --guardian=no --control-console --loglevel=9 + fi + ;; + dump) + if test "$NOTRUNNING" = "0" + then + doPC list + echo $ret + else + echo "not running" + fi + ;; + show) + if [ $# -lt 2 ] + then + echo Insufficient parameters + exit + fi + if test "$NOTRUNNING" = "0" + then + echo -n "$2=" + doPC show $2 ; echo $ret + else + echo "not running" + fi + ;; + mrtg) + if [ $# -lt 2 ] + then + echo Insufficient parameters + exit + fi + if test "$NOTRUNNING" = "0" + then + doPC show $2 ; echo $ret + if [ "$3x" != "x" ] + then + doPC show $3 ; echo $ret + else + echo 0 + fi + doPC uptime ; echo $ret + echo PowerDNS daemon + else + echo "not running" + fi + ;; + cricket) + if [ $# -lt 2 ] + then + echo Insufficient parameters + exit + fi + if test "$NOTRUNNING" = "0" + then + doPC show $2 ; echo $ret + else + echo "not running" + fi + ;; + *) + echo pdns [start\|stop\|force-reload\|reload\|restart\|status\|dump\|show\|mrtg\|cricket\|monitor] + ;; +esac + + |