ssahani / rpms / dhcp

Forked from rpms/dhcp 5 years ago
Clone
9c81a8e
#!/bin/bash
cvsdist ef67d48
#
cvsdist ef67d48
# chkconfig: - 65 35
cvsdist ef67d48
# description: dhcpd provide access to Dynamic Host Control Protocol.
cvsdist ef67d48
cvsdist ef67d48
# Source function library.
9c81a8e
. /etc/init.d/functions
cvsdist ef67d48
9c81a8e
RETVAL=0
9c81a8e
prog=dhcpd
9c81a8e
dhcpd=/usr/sbin/dhcpd
9c81a8e
lockfile=/var/lock/subsys/dhcpd
cvsdist ef67d48
9c81a8e
. /etc/sysconfig/dhcpd
jvdias baae35b
9c81a8e
cfOption() {
9c81a8e
    let i=0
9c81a8e
    for a in $* ; do
9c81a8e
        ((++i))
9c81a8e
        if [ $a = -cf ]; then
9c81a8e
            ((++i))
9c81a8e
            eval 'echo $'$i
9c81a8e
        elif [[ $a = -cf* ]]; then
9c81a8e
            echo ${a#-cf}
9c81a8e
        fi
9c81a8e
    done
jvdias baae35b
}
jvdias baae35b
jvdias baae35b
CF=`cfOption $DHCPDARGS`
jvdias baae35b
if [ -z "$CF" ]; then
9c81a8e
    CF='/etc/dhcpd.conf'
jvdias baae35b
fi
jvdias baae35b
jvdias 0db129b
[ -f "$CF" ] || exit 0
9c81a8e
jvdias baae35b
if [ ! -f /var/lib/dhcpd/dhcpd.leases ] ; then
9c81a8e
    mkdir -p /var/lib/dhcpd
9c81a8e
    touch /var/lib/dhcpd/dhcpd.leases
9c81a8e
    [ -x /sbin/restorecon ] && [ -d /selinux ] && /sbin/restorecon /var/lib/dhcp/dhcpd.leases >/dev/null 2>&1
jvdias 9ce54ad
fi
jvdias baae35b
9c81a8e
configtest() {
9c81a8e
    [ -x $dhcpd ] || return 5
9c81a8e
    [ -f $CF ] || return 6
9c81a8e
    $dhcpd -q -t -cf $CF
9c81a8e
    RETVAL=$?
9c81a8e
    return $RETVAL
cvsdist 37d2807
}
cvsdist 37d2807
cvsdist ef67d48
start() {
9c81a8e
    [ -x $dhcpd ] || return 5
9c81a8e
    [ -f $CF ] || return 6
9c81a8e
    echo -n $"Starting $prog: "
9c81a8e
    daemon $dhcpd $DHCPDARGS 2>/dev/null
9c81a8e
    RETVAL=$?
434d4df
    echo
9c81a8e
    [ $RETVAL = 0 ] && touch $lockfile
9c81a8e
    return $RETVAL
cvsdist ef67d48
}
cvsdist ef67d48
cvsdist ef67d48
stop() {
9c81a8e
    echo -n $"Shutting down $prog: "
0713d0c
    killproc $prog
9c81a8e
    RETVAL=$?
434d4df
    echo
9c81a8e
    [ $RETVAL = 0 ] && rm -f $lockfile
9c81a8e
    return $RETVAL
cvsdist ef67d48
}
cvsdist ef67d48
cvsdist ef67d48
# See how we were called.
cvsdist ef67d48
case "$1" in
9c81a8e
    start)
9c81a8e
        start
9c81a8e
        ;;
9c81a8e
    stop)
9c81a8e
        stop
9c81a8e
        ;;
9c81a8e
    reload)
9c81a8e
        RETVAL=3
9c81a8e
        ;;
9c81a8e
    restart)
9c81a8e
        configtest || exit $?
9c81a8e
        stop
9c81a8e
        start
9c81a8e
        ;;
9c81a8e
    condrestart)
9c81a8e
        if [ -f $lockfile ]; then
9c81a8e
            stop
9c81a8e
            start
9c81a8e
        fi
9c81a8e
        ;;
9c81a8e
    configtest|check|testconfig|test)
9c81a8e
        configtest
9c81a8e
        RETVAL=$?
9c81a8e
        ;;
9c81a8e
    status)
9c81a8e
        status $prog
9c81a8e
        RETVAL=$?
9c81a8e
        ;;
9c81a8e
    *)
9c81a8e
        echo $"Usage: $0 {start|stop|restart|condrestart|configtest|status}"
9c81a8e
        RETVAL=3
9c81a8e
        ;;
cvsdist ef67d48
esac
cvsdist ef67d48
cvsdist ef67d48
exit $RETVAL