]> git.pld-linux.org Git - packages/pdns.git/blob - pdns.init
- allow some actions when network is down
[packages/pdns.git] / pdns.init
1 #!/bin/sh
2 # pdns          This is controller stript for PowerDNS name server.
3 #
4 # chkconfig:    345 80 75
5 #
6 # description:  pdns is is a Domain Name Server (DNS) \
7 #               that is used to resolve host names to IP addresses.
8
9 # Source function library
10 . /etc/rc.d/init.d/functions
11
12 # Source networking configuration
13 . /etc/sysconfig/network
14
15 # Check that networking is up.
16 if is_yes "${NETWORKING}"; then
17         if [ ! -f /var/lock/subsys/network -a != stop -a != status ]; then
18                 msg_network_down "PowerDNS"
19                 exit 1
20         fi
21 else
22         exit 0
23 fi
24
25 BINARYPATH=/usr/sbin
26 SBINARYPATH=/usr/sbin
27 SOCKETPATH=/var/run
28
29 cd /var/run
30 suffix=`basename $0 | awk -F- '{print $2}'`
31 if [ $suffix ] 
32 then
33         EXTRAOPTS=--config-name=$suffix
34         PROGNAME=pdns-$suffix
35 else
36         PROGNAME=pdns
37 fi
38
39 pdns_server="/usr/sbin/pdns_server $EXTRAOPTS"
40
41 doPC() {
42         ret=$(/usr/sbin/pdns_control $EXTRAOPTS $1 $2 2> /dev/null)
43 }
44
45 doPC ping
46 NOTRUNNING=$?
47
48 RETVAL=0
49 case "$1" in
50   status)
51         status pdns_server
52         exit $?
53         ;;      
54   stop)
55         if test "$NOTRUNNING" = "0"; then 
56                 msg_stopping "PowerDNS"
57                 doPC quit 2>&1 >/dev/null
58                 [ $? -eq 0 ] && ok || fail
59                 rm /var/lock/subsys/pdns
60         else
61                 msg_not_running "PowerDNS"
62         fi 
63         ;;              
64   force-stop)
65         run_cmd "Killing PowerDNS without grace" killall -v -9 pdns_server
66         ;;
67   start)
68         if test "$NOTRUNNING" = "0"; then 
69                 msg_already_running "PowerDNS"
70         else
71                 msg_starting "PowerDNS (Powered DNS server)"
72                 daemon $pdns_server --daemon --guardian=yes
73                 RETVAL=$?
74                 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/pdns
75         fi
76         ;;
77   restart)
78         $0 stop
79         run_cmd "PowerDNS (3 sec. timeout)" sleep 3
80         $0 start
81         exit $?
82         ;;
83   reload|force-reload) 
84         if test "$NOTRUNNING" = "0"; then 
85                 show "Reloading PowerDNS"
86                 doPC cycle 2>&1 >/dev/null
87                 if [ $? -eq 0 ]; then
88                         ok
89                 else
90                         fail
91                         RETVAL=1
92                 fi
93         else
94                 msg_not_running "PowerDNS" >&2
95                 exit 7
96         fi
97         ;;              
98   monitor)
99         if test "$NOTRUNNING" = "0"; then 
100                 msg_already_running "PowerDNS"
101         else
102                 show "PowerDNS in foreground (testing mode)"
103                 $pdns_server --daemon=no --guardian=no --control-console --loglevel=9
104         fi 
105         ;;              
106   dump)
107         if test "$NOTRUNNING" = "0"; then 
108                 doPC list
109                 echo $ret
110         else
111                 msg_not_running "PowerDNS"
112         fi 
113         ;;              
114   show)
115         if [ $# -lt 2 ]; then
116                 msg_usage "$0 {show|mrtg|cricket} <variable_name_from_pdns_dump>"
117                 exit 2
118         fi 
119         if test "$NOTRUNNING" = "0"; then 
120                 echo -n "$2="
121                 doPC show $2 ; echo $ret
122         else
123                 msg_not_running "PowerDNS"
124         fi 
125         ;;              
126   mrtg)
127         if [ $# -lt 2 ]; then
128                 msg_usage "$0 {show|mrtg|cricket} <variable_name_from_pdns_dump>"
129                 exit 2
130         fi 
131         if test "$NOTRUNNING" = "0"; then 
132                 doPC show $2 ; echo $ret
133                 if [ "$3x" != "x" ]; then
134                         doPC show $3 ; echo $ret
135                 else
136                         echo 0
137                 fi
138                 doPC uptime ; echo $ret
139                 echo PowerDNS daemon
140         else
141                 msg_not_running "PowerDNS" >&2
142                 exit 7
143         fi 
144         ;;              
145   cricket)
146         if [ $# -lt 2 ]; then
147                 msg_usage "$0 {show|mrtg|cricket} <variable_name_from_pdns_dump>"
148                 exit 2
149         fi 
150         if test "$NOTRUNNING" = "0"; then 
151                 doPC show $2 ; echo $ret
152         else
153                 msg_not_running "PowerDNS" >&2
154                 exit 7
155         fi 
156         ;;              
157   *)
158         msg_usage "$0 {start|stop|restart|reload|force-reload|status|dump|show|mrtg|cricket|monitor} [...]"
159         exit 3
160 esac
161
162 exit $RETVAL
This page took 0.079371 seconds and 4 git commands to generate.