]> git.pld-linux.org Git - packages/bind.git/blame_incremental - named.init
Up to 9.18.11; fixes CVE-2022-3094, CVE-2022-3736, CVE-2022-3924
[packages/bind.git] / named.init
... / ...
CommitLineData
1#!/bin/sh
2#
3# named This shell script takes care of starting and stopping
4# named (BIND DNS server).
5#
6# chkconfig: 345 11 89
7#
8# description: named (BIND) is a Domain Name Server (DNS) \
9# that is used to resolve host names to IP addresses.
10
11CHROOT_TO_DIR="/var/lib/named"
12
13# Source function library
14. /etc/rc.d/init.d/functions
15
16# Source networking configuration
17. /etc/sysconfig/network
18
19NAMED_OPT=""
20
21# Try get config..
22[ -f /etc/sysconfig/named ] && . /etc/sysconfig/named
23
24# Check that networking is up.
25if is_yes "${NETWORKING}"; then
26 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
27 msg_network_down "Named"
28 exit 1
29 fi
30else
31 exit 0
32fi
33
34# Sanity check
35[ -e /etc/named.conf ] || exit 0
36
37[ -n "$NUM_CPUS" ] && NAMED_OPT="$NAMED_OPT -n $NUM_CPUS"
38
39# configtest itself
40configtest() {
41 /usr/bin/named-checkconf -j -t $CHROOT_TO_DIR 2>&1
42 return $?
43}
44
45checkconfig() {
46 local details=${1:-0}
47
48 if [ $details -eq 1 ]; then
49 # run config test and display report (status action)
50 show "Checking %s configuration" "Named"; busy
51 local out
52 out=`configtest 2>&1`
53 RETVAL=$?
54 [ $RETVAL -eq 0 ] && ok || fail
55 [ "$out" ] && echo >&2 "$out"
56 else
57 # run config test and abort with nice message if failed
58 # (for actions checking status before action).
59 show "Checking %s configuration" "Named"; busy
60 configtest >/dev/null 2>&1
61 RETVAL=$?
62 if [ $RETVAL -eq 0 ]; then
63 ok
64 else
65 fail
66 nls 'Configuration test failed. See details with %s "checkconfig"' $0
67 exit $RETVAL
68 fi
69 fi
70}
71
72start() {
73 # Check if the service is already running?
74 if [ -f /var/lock/subsys/named ]; then
75 msg_already_running "Named"
76 return
77 fi
78
79 [ "$1" -eq 0 ] || checkconfig
80 msg_starting "Named"
81 modprobe -s capability > /dev/null 2>&1
82 [ -f /etc/localtime ] && cp -puL /etc/localtime $CHROOT_TO_DIR/etc/localtime
83 touch $CHROOT_TO_DIR/named.log && \
84 chown named:named $CHROOT_TO_DIR/named.log
85 daemon --pidfile $CHROOT_TO_DIR/named.pid /usr/sbin/named -u named \
86 -t $CHROOT_TO_DIR -c /etc/named.conf $NAMED_OPT </dev/null
87 RETVAL=$?
88 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/named
89}
90
91stop() {
92 if [ ! -f /var/lock/subsys/named ]; then
93 msg_not_running "Named"
94 return
95 fi
96
97 msg_stopping "Named"
98 killproc --pidfile $CHROOT_TO_DIR/named.pid named
99 rm -f /var/lock/subsys/named >/dev/null 2>&1
100}
101
102reload() {
103 if [ ! -f /var/lock/subsys/named ]; then
104 msg_not_running "Named"
105 RETVAL=7
106 return
107 fi
108
109 checkconfig
110 if [ -f /etc/rndc.conf ]; then
111 run_cmd "$(nls 'Reloading %s service' 'Named')" /usr/sbin/rndc reload
112 else
113 msg_reloading "Named"
114 killproc named -HUP
115 RETVAL=$?
116 fi
117}
118
119condrestart() {
120 if [ ! -f /var/lock/subsys/named ]; then
121 msg_not_running "Named"
122 RETVAL=$1
123 return
124 fi
125
126 checkconfig
127 stop
128 start
129}
130
131RETVAL=0
132# See how we were called.
133case "$1" in
134 start)
135 start
136 ;;
137 stop)
138 stop
139 ;;
140 restart)
141 checkconfig
142 stop
143 start
144 ;;
145 try-restart)
146 condrestart 0
147 ;;
148 reload|force-reload)
149 reload
150 ;;
151 checkconfig|configtest)
152 checkconfig 1
153 ;;
154 status)
155 status named
156 RETVAL=$?
157 if [ -f /etc/rndc.conf ]; then
158 /usr/sbin/rndc status
159 RET=$?
160 if [ $RET -ne 0 ]; then
161 RETVAL=$RET
162 fi
163 fi
164 ;;
165 *)
166 msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|status}"
167 exit 3
168esac
169
170exit $RETVAL
This page took 0.025201 seconds and 4 git commands to generate.