Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > 275c40b784770082a4df9e563891de2d > files > 4

ucarp-1.2-9mdv2008.0.src.rpm

#!/bin/sh
#
### BEGIN INIT INFO
# Provides: ucarp
# Required-Start: $network
# Required-Stop: $network
# Should-Start: ct_sync
# Should-Stop: ct_sync
# Default-Start: 2 3 4 5
# Short-Description: Connection tracking state replication
# Description: Connection tracking state replication service
### END INIT INFO

. /etc/init.d/functions

NAME=ucarp
UCARP_D=/etc/ucarp.d

function is_valid {
    ! is_ignored_file $1 && [ -n "$INTERFACE" -a -n "$SRCIP" -a -n "$VIRTIP" -a -n "$VHID" -a -n "$PASSWORD" ]
}

function start {
    local INTERFACE SRCIP VIRTIP VHID PASSWORD TAKEOVER UPSCRIPT DOWNSCRIPT OPTIONS
    source $1
    if is_valid $1; then
	OPTIONS="-B -i $INTERFACE -s $SRCIP -a $VIRTIP -v $VHID -p $PASSWORD"
	if [ -n "$UPSCRIPT" ]; then
	    OPTIONS="$OPTIONS -u $UPSCRIPT"
	fi
	if [ -n "$DOWNSCRIPT" ]; then
	    OPTIONS="$OPTIONS -d $DOWNSCRIPT"
	fi
	if [ "$TAKEOVER" = yes ]; then
	    OPTIONS="$OPTIONS -P"
	fi
	gprintf "Starting %s on %s interface: " $NAME $INTERFACE
	daemon --pidfile /var/run/$NAME-$INTERFACE.pid $NAME $OPTIONS
	RETVAL=$?
	echo
    else
	RETVAL=1
    fi
}

function stop {
    local INTERFACE SRCIP VIRTIP VHID PASSWORD TAKEOVER UPSCRIPT DOWNSCRIPT OPTIONS
    source $1
    if is_valid $1; then
	gprintf "Shutting down %s on interface %s: " $NAME $INTERFACE
	PID=/var/run/$NAME-$INTERFACE.pid
	killproc -p $PID $NAME
	RETVAL=$?
	echo
    else
	RETVAL=1
    fi
}

case "$1" in
  start)
	RETVAL=0
	for f in $UCARP_D/*; do
	    [ -f $f ] || continue;
	    start $f
	done
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$NAME
        ;;
  stop)
	RETVAL=0
	for f in $UCARP_D/*; do
	    [ -f $f ] || continue;
	    stop $f
        done
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$NAME
        ;;
  status)
        status $NAME
        RETVAL=$?
        ;;
  restart|reload)
        $0 stop
        $0 start
        ;;
  condrestart)
        [ -f /var/lock/subsys/$NAME ] && restart || :
        ;;
  *)
        gprintf "Usage: %s {start|stop|status|restart}\n" "$0"
        RETVAL=1
        ;;
esac

exit $RETVAL