#!/bin/bash # MaraDNS Zoneserver This shell script takes care of starting and stopping MaraDNS' Zone Server daemon # chkconfig: - 55 45 # description: MaraDNS Zoneserver is responsible for handling DNS zone transfers as well as any TCP DNS queries # probe: true # Copyright 2005-2006 Sam Trenholme # TERMS # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # This software is provided 'as is' with no guarantees of correctness or # fitness for purpose. # This is a script which stops and starts the MaraDNS zoneserver process # The first line points to bash because I don't have a true Solaris /bin/sh # to test this against. # The following is a pointer to the MaraDNS program if [ -x "/usr/sbin/zoneserver" ] ; then ZONESERVER="/usr/sbin/zoneserver" elif [ -x "/usr/local/sbin/zoneserver" ] ; then ZONESERVER="/usr/local/sbin/zoneserver" else echo unable to find zoneserver exit 1 fi # The following is a pointer to the duende daemonizer if [ -x "/usr/sbin/duende" ] ; then DUENDE="/usr/sbin/duende" elif [ -x "/usr/local/sbin/duende" ] ; then DUENDE="/usr/local/sbin/duende" elif [ -x "/usr/bin/duende" ] ; then DUENDE="/usr/bin/duende" elif [ -x "/usr/local/bin/duende" ] ; then DUENDE="/usr/local/bin/duende" else echo unable to find duende exit 1 fi # The following is the directory we place MaraDNS log entries in LOGDIR="/var/log" # The following is a list of all mararc files which we will load or # unload; # Simple case: Only one MaraDNS zoneserver process, using the /etc/mararc file MARARCS="/etc/mararc" # Case two: Three MaraDNS processes, one using /etc/mararc.1, the second one # using /etc/mararc.2, and the third one using /etc/mararc.3 #MARARCS="/etc/mararc.1 /etc/mararc.2 /etc/mararc.3" # source function library . /etc/rc.d/init.d/functions RETVAL=0 start() { echo -n $"Starting all MaraDNS-Zoneserver processes: " for rcfile in $MARARCS ; do echo -n $"$rcfile " # Duende syslogs MaraDNS' output messages and daemonizes MaraDNS daemon $DUENDE $ZONESERVER -f $rcfile || RETVAL=$? done echo [ $RETVAL -eq 0 ] && echo `pidof zoneserver` > /var/run/zoneserver.pid && touch /var/lock/subsys/maradns-zoneserver } stop() { echo -n $"Stopping MaraDNS-Zoneserver: " killproc zoneserver echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/maradns-zoneserver } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart|reload) restart ;; condrestart) [ -f /var/lock/subsys/maradns-zoneserver ] && restart ||: ;; status) status zoneserver RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}" exit 1 esac exit $RETVAL