#!/bin/sh # Start/stop/restart the rad2dhcp daemon. . ./dhcp-relay.inc OPTIONS="-u -q $IFLIST -s $SECRET -P $PASSWORD -R $PORT -Q $QPS $SERVER -T $PRI_RECOVER_TIME" print_err_msg() { setterm -underline on -reverse on && echo $1 && setterm -underline off -reverse off } is_running() { ps ax|grep $PROGRAM|grep -v grep >/dev/null return $? } relay_start() { if [ -x $PROGRAM ]; then echo -en "Starting $PROGRAM...\t\t\t" if is_running; then print_err_msg "$PROG_NAME already running!" exit 1 fi #Starting process $PROGRAM $OPTIONS if is_running; then echo 'Success' else print_err_msg "Failed to start $PROGRAM!" fi else print_err_msg "$PROGRAM not exist or not executable!" fi } # Stop relay: relay_stop() { echo -en "Stopping $PROGRAM...\t\t\t" if is_running; then killall $PROG_NAME sleep 1 if is_running; then print_err_msg "Failed to stop $PROGNAME" else echo 'Success' fi else print_err_msg "$PROG_NAME not running!" fi } # Restart relay: relay_restart() { relay_stop sleep 1 relay_start } case "$1" in 'start') relay_start ;; 'stop') relay_stop ;; 'restart') relay_restart ;; 'set_next_serv') killall -62 dhcrelay echo "Send SIGNAL_CHANGE_SERV to dhcrelay..." ;; 'set_pri_serv') killall -63 dhcrelay echo "Send SIGNAL_SET_PRI_SERVER to dhcrelay..." ;; 'stat') killall -64 dhcrelay echo "Use 'grep dhcrelay /var/log/daemon.log' for results." ;; *) echo "usage $0 start|stop|restart|stat|set_next_serv|set_pri_serv" esac