Subversion Repositories configs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 - 1
#!/bin/sh
2
#
3
### BEGIN INIT INFO
4
# Provides: dhcpd
5
# Default-Start:
6
# Default-Stop:
7
# Should-Start:
8
# Required-Start: $network
9
# Required-Stop:
10
# Short-Description: Start and stop the DHCPv6 server
11
# Description: dhcpd provides the Dynamic Host Configuration Protocol (DHCPv6)
12
#              server.
13
### END INIT INFO
14
#
15
# The fields below are left around for legacy tools (will remove later).
16
#
17
# chkconfig: - 65 35
18
# description: dhcpd provides the Dynamic Host Configuration Protocol (DHCPv6) \
19
#              server
20
# processname: dhcpd
21
# config: /etc/dhcp/dhcpd6.conf
22
# config: /var/lib/dhcpd/dhcpd6.leases
23
# pidfile: /var/run/dhcpd6.pid
24
 
25
. /etc/rc.d/init.d/functions
26
 
27
RETVAL=0
28
 
29
prog=dhcpd
30
user=dhcpd
31
group=dhcpd
32
exec=/usr/sbin/dhcpd
33
lockfile=/var/lock/subsys/dhcpd6
34
pidfile=/var/run/dhcpd6.pid
35
statedir=/var/lib/dhcpd
36
default_config=/etc/dhcp/dhcpd6.conf
37
 
38
[ -f /etc/sysconfig/dhcpd6 ] && . /etc/sysconfig/dhcpd6
39
 
40
# if the user specified a different config file, make sure we reference it
41
findConfig() {
42
    for arg in $DHCPDARGS ; do
43
        if [ "$found" = 1 ]; then
44
            [ -f "$arg" ] && echo "$arg"
45
            return
46
        fi
47
        if [ "$arg" = "-cf" ]; then
48
            found=1
49
            continue
50
        fi
51
    done
52
    echo $default_config
53
}
54
 
55
config="$(findConfig "$DHCPDARGS")"
56
 
57
if [ ! -f $statedir/dhcpd6.leases ] ; then
58
    mkdir -p $statedir
59
    touch $statedir/dhcpd6.leases
60
    [ -x /sbin/restorecon ] && [ -d /selinux ] && /sbin/restorecon $statedir/dhcpd6.leases >/dev/null 2>&1
61
fi
62
 
63
configtest() {
64
    [ -x $exec ] || return 5
65
    [ -f $config ] || return 6
66
    $exec -q -t -6 -cf $config
67
    RETVAL=$?
68
    if [ $RETVAL -eq 1 ]; then
69
        $exec -t -6 -cf $config
70
    else
71
        echo "Syntax: OK" >&2
72
    fi
73
    return $RETVAL
74
}
75
 
76
rh_status() {
77
    status -p $pidfile -l $(basename $lockfile) $exec
78
}
79
 
80
rh_status_q() {
81
    rh_status >/dev/null 2>&1
82
}
83
 
84
start() {
85
    [ `id -u` -eq 0 ] || return 4
86
    [ -x $exec ] || return 5
87
    [ -f $config ] || return 6
88
 
89
    rh_status_q && return 0
90
 
91
    # add default dhcpd6.conf configuration file if there's no one in DHCPDARGS
92
    [ "${config}" = "${default_config}" ] && DHCPDARGS="$DHCPDARGS -cf $default_config"
93
 
94
    echo -n $"Starting $prog (DHCPv6): "
95
    daemon --pidfile=$pidfile $exec -6 -user $user -group $group $DHCPDARGS 2>/dev/null
96
    RETVAL=$?
97
    echo
98
    [ $RETVAL -eq 0 ] && touch $lockfile
99
    return $RETVAL
100
}
101
 
102
stop() {
103
    [ `id -u` -eq 0 ] || return 4
104
 
105
    rh_status_q || return 0
106
 
107
    echo -n $"Shutting down $prog (DHCPv6): "
108
    killproc -p $pidfile $prog
109
    RETVAL=$?
110
 
111
    echo
112
    [ $RETVAL -eq 0 ] && rm -f $lockfile
113
    return $RETVAL
114
}
115
 
116
usage() {
117
    echo $"Usage: $0 {start|stop|restart|force-reload|condrestart|try-restart|configtest|status}"
118
}
119
 
120
if [ $# -gt 1 ]; then
121
    exit 2
122
fi
123
 
124
case "$1" in
125
    start)
126
        start
127
        ;;
128
    stop)
129
        stop
130
        ;;
131
    restart|force-reload)
132
        stop ; start
133
        ;;
134
    condrestart|try-restart)
135
        rh_status_q || exit 0
136
        stop ; start
137
        ;;
138
    reload)
139
        usage
140
        # unimplemented feature
141
        exit 3
142
        ;;
143
    configtest)
144
        configtest
145
        ;;
146
    status)
147
        rh_status
148
        ;;
149
    *)
150
        usage
151
        exit 2
152
        ;;
153
esac
154
 
155
exit $?