blob: 4030c28962c384b52fb5910f97c638cce0f2ce6c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/dnsmasq
checkconfig() {
local testout
if ! testout=$(/usr/bin/dnsmasq --test 2>&1); then
echo "$testout"
return 1
fi
return 0
}
pidfile=/run/dnsmasq.pid
if [[ -r $pidfile ]]; then
read -r PID < "$pidfile"
if [[ ! -d /proc/$PID ]]; then
# stale pidfile
unset PID
rm -f "$pidfile"
fi
fi
case $1 in
start)
stat_busy "Starting DNS/DHCP daemon"
if [[ -z $PID ]] && checkconfig &&
/usr/bin/dnsmasq "--user=${DNSMASQ_USER:-nobody}" \
"--pid-file=$pidfile" \
"${DNSMASQ_OPTS[@]}"; then
add_daemon dnsmasq
stat_done
else
stat_fail
fi
;;
stop)
stat_busy "Stopping DNS/DHCP daemon"
if [[ $PID ]] && kill "$PID" &> /dev/null; then
# dnsmasq doesn't clean up after itself
rm -f "$pidfile"
rm_daemon dnsmasq
stat_done
else
stat_fail
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
checkconfig)
# diagnostics will be printed, with zero/non-zero exit
/usr/bin/dnsmasq --test
;;
*)
echo "usage: $0 <start|stop|restart|checkconfig>"
esac
|