#!/bin/sh # DHCP relay agent # # chkconfig: 345 80 20 # description: DHCP relay agent # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Demon specified configuration. OPTIONS="" . /etc/sysconfig/dhcp-relay # 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 realay" exit 1 fi else exit 0 fi if [ -n "DHCP_RELAY_INTERFACES" ]; then for iface in $DHCP_RELAY_INTERFACES ; do OPTIONS="$OPTIONS -i $iface" done fi start() { if [ ! -f /var/lock/subsys/dhcp-relay ]; then msg_starting "DHCP relay" daemon dhcrelay $OPTIONS $DHCP_SERVERS_IP RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcp-relay else msg_already_running "DHCP relay" fi } stop() { if [ -f /var/lock/subsys/dhcp-relay ]; then msg_stopping "DHCP relay" killproc dhcrelay rm -f /var/lock/subsys/dhcp-relay else msg_not_running "DHCP relay" fi } condrestart() { if [ -f /var/lock/subsys/dhcp-relay ]; then stop start else msg_not_running "DHCP relay" RETVAL=$1 fi } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; try-restart) condrestart 0 ;; force-reload) condrestart 7 ;; status) status dhcrelay exit $? ;; *) msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}" exit 3 esac exit $RETVAL