--- dhcpd-def 2006-11-06 16:37:12 +0400 +++ dhcpd 2009-06-30 13:37:36 +0500 @@ -26,6 +26,7 @@ DHCPD_CONF=/etc/dhcp/dhcpd.conf DHCPD_CONF_SAMPLE=/etc/dhcp/dhcpd.conf.sample LOCKFILE=/var/lock/subsys/dhcpd +PROCESSNAME=dhcpd # Source config. SourceIfNotEmpty /etc/sysconfig/dhcpd @@ -36,10 +37,10 @@ { is_yes "$NETWORKING" || return 0 if [ -e "$DHCPD_CONF" ]; then - start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user dhcpd -- dhcpd $DHCPDARGS + start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user dhcpd -- $PROCESSNAME $DHCPDARGS RETVAL=$? else - msg_starting dhcpd + msg_starting $PROCESSNAME printf "%s: %s" "$DHCPD_CONF" "No such file or directory" failure "dhcpd startup" echo @@ -53,7 +54,7 @@ stop() { - stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user dhcpd -- dhcpd + stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user dhcpd -- $PROCESSNAME RETVAL=$? return $RETVAL } @@ -64,9 +65,25 @@ start } +conftest() +{ + echo -n "Checking configuration sanity for $PROCESSNAME: " + DAEMON_BIN="$(absolute "$1")" + $DAEMON_BIN -q -t -cf $DHCPD_CONF + if [ $? -ne 0 ]; then + echo_failure + echo + $DAEMON_BIN -t -cf $DHCPD_CONF + else + echo_success + echo + fi +} + # See how we were called. case "$1" in start) + conftest start ;; stop) @@ -86,11 +103,14 @@ fi ;; status) - status --pidfile "$PIDFILE" --expect-user dhcpd -- dhcpd + status --pidfile "$PIDFILE" --expect-user dhcpd -- $PROCESSNAME RETVAL=$? ;; + conftest) + conftest $PROCESSNAME + ;; *) - msg_usage "${0##*/} {start|stop|restart|condstop|condrestart|status}" + msg_usage "${0##*/} {start|stop|restart|condstop|condrestart|status|conftest}" RETVAL=1 esac