X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=dhcp.init;h=2cb8dc2f5cb4c9342f0231c91e171f2676de6bc8;hb=refs%2Fheads%2FAC-branch;hp=c98f7bc897729ce6605581ca6545e3d425a98a4f;hpb=7098b554c4e6b00aaeb24d15d6c4092848709734;p=packages%2Fdhcp.git diff --git a/dhcp.init b/dhcp.init index c98f7bc..2cb8dc2 100644 --- a/dhcp.init +++ b/dhcp.init @@ -14,41 +14,92 @@ [ -f /etc/sysconfig/dhcpd ] && . /etc/sysconfig/dhcpd # Check that networking is up. -if [ "${NETWORKING}" = "no" ]; then - nls "WARNING: Networking is down. Dhcpd sercice can't be runed." - exit 1 +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=`/usr/sbin/dhcpd -t 2>&1`; rc=$? + if [ $rc -gt 0 ]; then + fail + echo >&2 "$out" + else + ok + fi + return $rc +} -# See how we were called. -case "$1" in - start) +start() { # Check if the service is already running? if [ ! -f /var/lock/subsys/dhcpd ]; then - show Starting DHCP Server + msg_starting "DHCP Server" daemon 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 - nls "dhcpd already is running\n" + msg_not_running dhcpd + RETVAL=$1 fi - touch /var/lock/subsys/dhcpd +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + checkconfig || exit 1 + start ;; stop) - show Stopping DHCP Server - killproc dhcpd - rm -f /var/run/dhcpd.pid - rm -f /var/lock/subsys/dhcpd + stop + ;; + restart) + checkconfig || exit 1 + stop + start + ;; + try-restart) + checkconfig || exit 1 + condrestart 0 ;; - restart|reload) - $0 stop - $0 start + force-reload) + checkconfig || exit 1 + condrestart 7 + ;; + checkconfig) + checkconfig ;; status) status dhcpd + exit $? ;; *) - nls "Usage: $0 {start|stop|restart|reload|status}" - exit 1 + msg_usage "$0 {start|stop|restart|try-restart|force-reload|checkconfig|status}" + exit 3 esac -exit 0 - +exit $RETVAL