#!/bin/sh # DHCP Server # # chkconfig: 345 80 20 # description: DHCP Server # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network # Get service config [ -f /etc/sysconfig/dhcpd ] && . /etc/sysconfig/dhcpd # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then msg_network_down "DHCP Server" exit 1 fi else exit 0 fi checkconfig() { show "Checking %s configuration" "DHCP Server" out=`/sbin/dhcpd -t 2>&1`; rc=$? if [ $rc -gt 0 ]; then fail echo >&2 "$out" else ok fi return $rc } start() { # Check if the service is already running? if [ ! -f /var/lock/subsys/dhcpd ]; then msg_starting "DHCP Server" daemon /sbin/dhcpd $DHCPD_INTERFACES RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcpd else msg_already_running "DHCP Server" fi } stop() { if [ -f /var/lock/subsys/dhcpd ]; then msg_stopping "DHCP Server" killproc dhcpd rm -f /var/run/dhcpd.pid /var/lock/subsys/dhcpd >/dev/null 2>&1 else msg_not_running "DHCP Server" fi } condrestart() { if [ -f /var/lock/subsys/dhcpd ]; then stop start else msg_not_running dhcpd RETVAL=$1 fi } RETVAL=0 # See how we were called. case "$1" in start) checkconfig || exit 1 start ;; stop) stop ;; restart) checkconfig || exit 1 stop start ;; try-restart) checkconfig || exit 1 condrestart 0 ;; force-reload) checkconfig || exit 1 condrestart 7 ;; checkconfig) checkconfig ;; status) status dhcpd exit $? ;; *) msg_usage "$0 {start|stop|restart|try-restart|force-reload|checkconfig|status}" exit 3 esac exit $RETVAL