xref: /netbsd-src/external/bsd/unbound/dist/contrib/unbound.init_yocto (revision 91f7d55fb697b5e0475da4718fa34c3a3ebeac85)
1*91f7d55fSchristos#!/bin/sh
2*91f7d55fSchristos#
3*91f7d55fSchristos# unbound	This shell script takes care of starting and stopping
4*91f7d55fSchristos#		unbound (DNS server).
5*91f7d55fSchristos#
6*91f7d55fSchristos# chkconfig:   - 14 86
7*91f7d55fSchristos# description:	unbound is a Domain Name Server (DNS) \
8*91f7d55fSchristos#		that is used to resolve host names to IP addresses.
9*91f7d55fSchristos
10*91f7d55fSchristos### BEGIN INIT INFO
11*91f7d55fSchristos# Provides: $named unbound
12*91f7d55fSchristos# Required-Start: $network $local_fs
13*91f7d55fSchristos# Required-Stop: $network $local_fs
14*91f7d55fSchristos# Should-Start: $syslog
15*91f7d55fSchristos# Should-Stop: $syslog
16*91f7d55fSchristos# Short-Description: unbound recursive Domain Name Server.
17*91f7d55fSchristos# Description:  unbound is a Domain Name Server (DNS)
18*91f7d55fSchristos#		that is used to resolve host names to IP addresses.
19*91f7d55fSchristos### END INIT INFO
20*91f7d55fSchristos
21*91f7d55fSchristos# Source function library.
22*91f7d55fSchristos. /etc/init.d/functions
23*91f7d55fSchristos
24*91f7d55fSchristosexec="/usr/sbin/unbound"
25*91f7d55fSchristosprog="unbound"
26*91f7d55fSchristosconfig="/etc/unbound/unbound.conf"
27*91f7d55fSchristospidfile="/var/unbound/unbound.pid"
28*91f7d55fSchristosrootdir="/var/unbound"
29*91f7d55fSchristos
30*91f7d55fSchristos[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
31*91f7d55fSchristos
32*91f7d55fSchristoslockfile=/var/lock/subsys/$prog
33*91f7d55fSchristos
34*91f7d55fSchristosstart() {
35*91f7d55fSchristos    [ -x $exec ] || exit 5
36*91f7d55fSchristos    [ -f $config ] || exit 6
37*91f7d55fSchristos    echo -n $"Starting $prog: "
38*91f7d55fSchristos
39*91f7d55fSchristos    # setup root jail
40*91f7d55fSchristos    if [ -s /etc/localtime ]; then
41*91f7d55fSchristos	[ -d ${rootdir}/etc ] || mkdir -p ${rootdir}/etc ;
42*91f7d55fSchristos	if [ ! -e ${rootdir}/etc/localtime ] || ! /usr/bin/cmp -s /etc/localtime ${rootdir}/etc/localtime; then
43*91f7d55fSchristos	    cp -fp /etc/localtime ${rootdir}/etc/localtime
44*91f7d55fSchristos	fi;
45*91f7d55fSchristos    fi;
46*91f7d55fSchristos    if [ -s /etc/resolv.conf ]; then
47*91f7d55fSchristos	[ -d ${rootdir}/etc ] || mkdir -p ${rootdir}/etc ;
48*91f7d55fSchristos	if [ ! -e ${rootdir}/etc/resolv.conf ] || ! /usr/bin/cmp -s /etc/resolv.conf ${rootdir}/etc/resolv.conf; then
49*91f7d55fSchristos	    cp -fp /etc/resolv.conf ${rootdir}/etc/resolv.conf
50*91f7d55fSchristos	fi;
51*91f7d55fSchristos    fi;
52*91f7d55fSchristos    if ! egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/log' /proc/mounts; then
53*91f7d55fSchristos	[ -d ${rootdir}/dev ] || mkdir -p ${rootdir}/dev ;
54*91f7d55fSchristos	[ -e ${rootdir}/dev/log ] || touch ${rootdir}/dev/log
55*91f7d55fSchristos	mount --bind -n /dev/log ${rootdir}/dev/log >/dev/null 2>&1;
56*91f7d55fSchristos    fi;
57*91f7d55fSchristos    if ! egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/random' /proc/mounts; then
58*91f7d55fSchristos	[ -d ${rootdir}/dev ] || mkdir -p ${rootdir}/dev ;
59*91f7d55fSchristos	[ -e ${rootdir}/dev/random ] || touch ${rootdir}/dev/random
60*91f7d55fSchristos	mount --bind -n /dev/random ${rootdir}/dev/random >/dev/null 2>&1;
61*91f7d55fSchristos    fi;
62*91f7d55fSchristos
63*91f7d55fSchristos    # if not running, start it up here
64*91f7d55fSchristos    daemonize $exec
65*91f7d55fSchristos    retval=$?
66*91f7d55fSchristos    echo
67*91f7d55fSchristos    [ $retval -eq 0 ] && touch $lockfile
68*91f7d55fSchristos    return $retval
69*91f7d55fSchristos}
70*91f7d55fSchristos
71*91f7d55fSchristosstop() {
72*91f7d55fSchristos    echo -n $"Stopping $prog: "
73*91f7d55fSchristos    # stop it here, often "killproc $prog"
74*91f7d55fSchristos    killproc $prog
75*91f7d55fSchristos    retval=$?
76*91f7d55fSchristos    echo
77*91f7d55fSchristos    [ $retval -eq 0 ] && rm -f $lockfile
78*91f7d55fSchristos    if egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/log' /proc/mounts; then
79*91f7d55fSchristos	umount ${rootdir}/dev/log >/dev/null 2>&1
80*91f7d55fSchristos    fi;
81*91f7d55fSchristos    if egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/random' /proc/mounts; then
82*91f7d55fSchristos	umount ${rootdir}/dev/random >/dev/null 2>&1
83*91f7d55fSchristos    fi;
84*91f7d55fSchristos    return $retval
85*91f7d55fSchristos}
86*91f7d55fSchristos
87*91f7d55fSchristosrestart() {
88*91f7d55fSchristos    stop
89*91f7d55fSchristos    start
90*91f7d55fSchristos}
91*91f7d55fSchristos
92*91f7d55fSchristosreload() {
93*91f7d55fSchristos    kill -HUP `cat $pidfile`
94*91f7d55fSchristos}
95*91f7d55fSchristos
96*91f7d55fSchristosforce_reload() {
97*91f7d55fSchristos    restart
98*91f7d55fSchristos}
99*91f7d55fSchristos
100*91f7d55fSchristosrh_status() {
101*91f7d55fSchristos    # run checks to determine if the service is running or use generic status
102*91f7d55fSchristos    status $prog
103*91f7d55fSchristos}
104*91f7d55fSchristos
105*91f7d55fSchristosrh_status_q() {
106*91f7d55fSchristos    rh_status -p $pidfile >/dev/null 2>&1
107*91f7d55fSchristos}
108*91f7d55fSchristos
109*91f7d55fSchristoscase "$1" in
110*91f7d55fSchristos    start)
111*91f7d55fSchristos        rh_status_q && exit 0
112*91f7d55fSchristos        $1
113*91f7d55fSchristos        ;;
114*91f7d55fSchristos    stop)
115*91f7d55fSchristos        rh_status_q || exit 0
116*91f7d55fSchristos        $1
117*91f7d55fSchristos        ;;
118*91f7d55fSchristos    restart)
119*91f7d55fSchristos        $1
120*91f7d55fSchristos        ;;
121*91f7d55fSchristos    reload)
122*91f7d55fSchristos        rh_status_q || exit 7
123*91f7d55fSchristos        $1
124*91f7d55fSchristos        ;;
125*91f7d55fSchristos    force-reload)
126*91f7d55fSchristos        force_reload
127*91f7d55fSchristos        ;;
128*91f7d55fSchristos    status)
129*91f7d55fSchristos        rh_status
130*91f7d55fSchristos        ;;
131*91f7d55fSchristos    condrestart|try-restart)
132*91f7d55fSchristos        rh_status_q || exit 0
133*91f7d55fSchristos        restart
134*91f7d55fSchristos        ;;
135*91f7d55fSchristos    *)
136*91f7d55fSchristos        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
137*91f7d55fSchristos        exit 2
138*91f7d55fSchristosesac
139*91f7d55fSchristosexit $?
140