Home | History | Annotate | Line # | Download | only in contrib
unbound.init_fedora revision 1.1.1.1.16.1
      1           1.1  christos #!/bin/sh
      2           1.1  christos #
      3           1.1  christos # unbound	This shell script takes care of starting and stopping
      4           1.1  christos #		unbound (DNS server).
      5           1.1  christos #
      6           1.1  christos # chkconfig:   - 14 86
      7           1.1  christos # description:	unbound is a Domain Name Server (DNS) \
      8           1.1  christos #		that is used to resolve host names to IP addresses.
      9           1.1  christos 
     10           1.1  christos ### BEGIN INIT INFO
     11           1.1  christos # Provides: unbound
     12           1.1  christos # Required-Start: $network $local_fs
     13           1.1  christos # Required-Stop: $network $local_fs
     14           1.1  christos # Should-Start: $syslog
     15           1.1  christos # Should-Stop: $syslog
     16           1.1  christos # Short-Description: unbound recursive Domain Name Server.
     17           1.1  christos # Description:  unbound is a Domain Name Server (DNS) 
     18           1.1  christos #		that is used to resolve host names to IP addresses.
     19           1.1  christos ### END INIT INFO
     20           1.1  christos 
     21           1.1  christos # Source function library.
     22           1.1  christos . /etc/rc.d/init.d/functions
     23           1.1  christos 
     24           1.1  christos exec="/usr/sbin/unbound"
     25           1.1  christos config="/var/lib/unbound/unbound.conf"
     26           1.1  christos rootdir="/var/lib/unbound"
     27           1.1  christos pidfile="/var/run/unbound/unbound.pid"
     28           1.1  christos 
     29           1.1  christos [ -e /etc/sysconfig/unbound ] && . /etc/sysconfig/unbound
     30           1.1  christos 
     31           1.1  christos lockfile=/var/lock/subsys/unbound
     32           1.1  christos 
     33           1.1  christos start() {
     34           1.1  christos     [ -x $exec ] || exit 5
     35           1.1  christos     [ -f $config ] || exit 6
     36           1.1  christos     echo -n $"Starting unbound: "
     37           1.1  christos 
     38           1.1  christos 	if [ ! -e ${rootdir}/etc/resolv.conf ] || /usr/bin/cmp -s /etc/resolv.conf ${rootdir}/etc/resolv.conf; then
     39           1.1  christos 	    cp -fp /etc/resolv.conf ${rootdir}/etc/resolv.conf
     40           1.1  christos 	fi;
     41           1.1  christos 	if [ ! -e ${rootdir}/etc/localtime ] || /usr/bin/cmp -s /etc/localtime ${rootdir}/etc/localtime; then
     42           1.1  christos 	    cp -fp /etc/localtime ${rootdir}/etc/localtime
     43           1.1  christos 	fi;
     44           1.1  christos 	mount --bind -n /dev/log ${rootdir}/dev/log >/dev/null 2>&1;
     45  1.1.1.1.16.1    martin 	mount --bind -n /dev/urandom ${rootdir}/dev/urandom >/dev/null 2>&1;
     46           1.1  christos 	mount --bind -n /var/run/unbound ${rootdir}/var/run/unbound >/dev/null 2>&1;
     47           1.1  christos 
     48           1.1  christos     # if not running, start it up here
     49           1.1  christos     daemon $exec
     50           1.1  christos     retval=$?
     51           1.1  christos     [ $retval -eq 0 ] && touch $lockfile
     52           1.1  christos     echo
     53           1.1  christos }
     54           1.1  christos 
     55           1.1  christos stop() {
     56           1.1  christos     echo -n $"Stopping unbound: "
     57           1.1  christos     # stop it here, often "killproc unbound"
     58           1.1  christos     killproc -p $pidfile unbound
     59           1.1  christos     retval=$?
     60           1.1  christos     [ $retval -eq 0 ] && rm -f $lockfile
     61  1.1.1.1.16.1    martin     for mountfile in /dev/log /dev/urandom /etc/localtime /etc/resolv.conf /var/run/unbound
     62           1.1  christos     do
     63           1.1  christos     if egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}''${mountfile}'' /proc/mounts; then
     64           1.1  christos 	umount ${rootdir}$mountfile >/dev/null 2>&1
     65           1.1  christos     fi;
     66           1.1  christos     done
     67           1.1  christos     echo
     68           1.1  christos }
     69           1.1  christos 
     70           1.1  christos restart() {
     71           1.1  christos     stop
     72           1.1  christos     start
     73           1.1  christos }
     74           1.1  christos 
     75           1.1  christos reload() {
     76           1.1  christos     kill -HUP `cat $pidfile`
     77           1.1  christos }
     78           1.1  christos 
     79           1.1  christos force_reload() {
     80           1.1  christos     restart
     81           1.1  christos }
     82           1.1  christos 
     83           1.1  christos rh_status() {
     84           1.1  christos     # run checks to determine if the service is running or use generic status
     85           1.1  christos     status -p $pidfile unbound
     86           1.1  christos }
     87           1.1  christos 
     88           1.1  christos rh_status_q() {
     89           1.1  christos     rh_status -p $pidfile >/dev/null 2>&1
     90           1.1  christos }
     91           1.1  christos 
     92           1.1  christos case "$1" in
     93           1.1  christos     start)
     94           1.1  christos         start
     95           1.1  christos         ;;
     96           1.1  christos     stop)
     97           1.1  christos         stop
     98           1.1  christos         ;;
     99           1.1  christos     restart)
    100           1.1  christos         restart
    101           1.1  christos         ;;
    102           1.1  christos     reload)
    103           1.1  christos         reload
    104           1.1  christos         ;;
    105           1.1  christos     force-reload)
    106           1.1  christos         force_reload
    107           1.1  christos         ;;
    108           1.1  christos     status)
    109           1.1  christos         rh_status
    110           1.1  christos         ;;
    111           1.1  christos     condrestart|try-restart)
    112           1.1  christos         rh_status_q || exit 0
    113           1.1  christos         restart
    114           1.1  christos         ;;
    115           1.1  christos     *)
    116           1.1  christos         echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
    117           1.1  christos         exit 2
    118           1.1  christos esac
    119           1.1  christos exit $?
    120