ssahani / rpms / dhcp

Forked from rpms/dhcp 6 years ago
Clone
e6a433a
#!/bin/sh
e6a433a
#
e6a433a
### BEGIN INIT INFO
e6a433a
# Provides: dhcpd
e6a433a
# Default-Start: 2 3 4 5
e6a433a
# Default-Stop: 0 1 6
e6a433a
# Should-Start:
e6a433a
# Required-Start: $network
e6a433a
# Required-Stop:
e6a433a
# Short-Description: Start and stop the DHCP server
e6a433a
# Description: dhcpd provides the Dynamic Host Configuration Protocol (DHCP)
e6a433a
#              server.
e6a433a
### END INIT INFO
e6a433a
#
e6a433a
# The fields below are left around for legacy tools (will remove later).
cvsdist ef67d48
#
cvsdist ef67d48
# chkconfig: - 65 35
e6a433a
# description: dhcpd provides the Dynamic Host Configuration Protocol (DHCP) \
e6a433a
#              server
e6a433a
# processname: dhcpd
e6a433a
# config: /etc/dhcpd.conf
e6a433a
# config: /var/lib/dhcpd/dhcpd.leases
e6a433a
# pidfile: /var/run/dhcpd.pid
cvsdist ef67d48
9c81a8e
. /etc/init.d/functions
cvsdist ef67d48
9c81a8e
RETVAL=0
e6a433a
9c81a8e
prog=dhcpd
9c81a8e
dhcpd=/usr/sbin/dhcpd
9c81a8e
lockfile=/var/lock/subsys/dhcpd
e6a433a
pidfile=/var/run/dhcpd.pid
cvsdist ef67d48
e6a433a
[ -f /etc/sysconfig/dhcpd ] && . /etc/sysconfig/dhcpd
e6a433a
e6a433a
# if the user specified a different config file, make sure we reference it
e6a433a
findConfig() {
e6a433a
    for arg in $DHCPDARGS ; do
8b16439
        if [ "$found" = 1 ]; then
e6a433a
            [ -f "$arg" ] && echo "$arg"
e6a433a
            return
e6a433a
        fi
e6a433a
        if [ "$arg" = "-cf" ]; then
e6a433a
            found=1
e6a433a
            continue
9c81a8e
        fi
9c81a8e
    done
e6a433a
    echo "/etc/dhcpd.conf"
jvdias baae35b
}
jvdias baae35b
e6a433a
conf="$(findConfig "$DHCPDARGS")"
9c81a8e
jvdias baae35b
if [ ! -f /var/lib/dhcpd/dhcpd.leases ] ; then
9c81a8e
    mkdir -p /var/lib/dhcpd
9c81a8e
    touch /var/lib/dhcpd/dhcpd.leases
773a3f1
    [ -x /sbin/restorecon ] && [ -d /selinux ] && /sbin/restorecon /var/lib/dhcpd/dhcpd.leases >/dev/null 2>&1
jvdias 9ce54ad
fi
jvdias baae35b
9c81a8e
configtest() {
9c81a8e
    [ -x $dhcpd ] || return 5
e6a433a
    [ -f $conf ] || return 6
e6a433a
    $dhcpd -q -t -cf $conf
9c81a8e
    RETVAL=$?
9c81a8e
    return $RETVAL
cvsdist 37d2807
}
cvsdist 37d2807
cvsdist ef67d48
start() {
9c81a8e
    [ -x $dhcpd ] || return 5
e6a433a
    [ -f $conf ] || return 6
e6a433a
e6a433a
    pidofproc $prog >/dev/null 2>&1
e6a433a
    RETVAL=$?
e6a433a
    [ $RETVAL -eq 0 ] && return $RETVAL
e6a433a
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() {
e6a433a
    pidofproc $prog >/dev/null 2>&1
8b16439
    if [ $? -ne 0 ]; then
e6a433a
        RETVAL=7
e6a433a
        return $RETVAL
e6a433a
    fi
e6a433a
9c81a8e
    echo -n $"Shutting down $prog: "
0713d0c
    killproc $prog
9c81a8e
    RETVAL=$?
e6a433a
e6a433a
    [ $RETVAL = 0 ] && success || failure
434d4df
    echo
9c81a8e
    [ $RETVAL = 0 ] && rm -f $lockfile
9c81a8e
    return $RETVAL
cvsdist ef67d48
}
cvsdist ef67d48
e6a433a
if [ ! -x $dhcdbd ]; then
e6a433a
    RETVAL=5
e6a433a
    exit $RETVAL
e6a433a
fi
e6a433a
e6a433a
if [ $# -gt 1 ]; then
e6a433a
    RETVAL=2
e6a433a
    exit $RETVAL
e6a433a
fi
e6a433a
cvsdist ef67d48
case "$1" in
9c81a8e
    start)
9c81a8e
        start
e6a433a
        RETVAL=$?
9c81a8e
        ;;
9c81a8e
    stop)
9c81a8e
        stop
e6a433a
        RETVAL=$?
9c81a8e
        ;;
e6a433a
    restart|force-reload)
6d3acf4
        stop ; start
e6a433a
        RETVAL=$?
9c81a8e
        ;;
e6a433a
    try-restart|reload)
e6a433a
        RETVAL=3
9c81a8e
        ;;
9c81a8e
    condrestart)
9c81a8e
        if [ -f $lockfile ]; then
6d3acf4
            stop ; start
e6a433a
            RETVAL=$?
9c81a8e
        fi
9c81a8e
        ;;
e6a433a
    configtest)
9c81a8e
        configtest
9c81a8e
        RETVAL=$?
9c81a8e
        ;;
9c81a8e
    status)
e6a433a
        status $dhcpd
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