File init.pen of Package pen

#! /bin/sh
# Copyright (c) 1995-2004 SUSE LINUX AG, Germany.
#
# Author: joe@suse.de, template by ro@suse.de
#         using parts from Torsten.Goedicke@wlw.de
#
# /etc/init.d/pen
#   and its symbolic  link
# /usr/sbin/rcpen
#
### BEGIN INIT INFO
# Provides:          pen
# Required-Start:    $time $named $syslog $remote_fs
# Required-Stop:     $time $named $syslog $remote_fs
# Default-Start:     3 5
# Default-Stop:      0 1 2 4 6
# Short-Description: Load balancer for tcp based protocols
# Description:       A simple load balancer for tcp based protocols
### END INIT INFO

. /etc/rc.status

JOBNAME="$0"
NAME=pen
DAEMON=/usr/bin/run$NAME.sh
CF=/etc/$NAME.cfg

PIDDIR="/var/run"
PIDALL="$PIDDIR/run$NAME.pid"

test -r $CF || { echo "$CF not found";
	if [ "$1" = "stop" ]; then exit 0;
    else exit 6; fi; }

. $CF

# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}

# Force execution if not called by a runlevel directory.
test -x $DAEMON || exit 0

rc_reset
case "$1" in
    start)
    PID=`$PS | grep $NAME | grep -v grep | grep -v $JOBNAME`
    if [ -n "$PID" ]; then
      echo "$NAME load balancer is already running as"
      echo "$PID"
    else
      echo -n "Starting pen load balancer instances"
      for i in $COUNT
      do
        eval PIDFILE=\$PID${i}
        eval OPTIONS=\$PEN${i}
        CFFILE=`echo $PIDFILE | sed 's/pid/conf/'`
        echo $OPTIONS > $CFFILE
        $DAEMON $CFFILE &
        echo $! >> $PIDALL
      done
    fi
    rc_status -v
    ;;
    stop)
    echo -n "Shutting down pen load balancer instances"
    test -f $PIDALL && kill -TERM `cat $PIDALL` 2> /dev/null
    test -f $PIDALL && kill -KILL `cat $PIDALL` 2> /dev/null
    rm -f $PIDALL
    for i in $COUNT
    do
      eval PIDFILE=\$PID${i}
      eval OPTIONS=\$PEN${i}
      CFFILE=`echo $PIDFILE | sed 's/pid/conf/'`
      test -f $PIDFILE && kill -TERM `cat $PIDFILE` 2> /dev/null
      rm -f $PIDFILE $CFFILE
    done
    rc_status -v
    ;;
    restart)
    echo -n "Restarting pen load balancer instances"
    for i in $COUNT
    do
      eval PIDFILE=\$PID${i}
      eval OPTIONS=\$PEN${i}
      CFFILE=`echo $PIDFILE | sed 's/pid/conf/'`
      echo $OPTIONS > $CFFILE
      kill -TERM `cat $PIDFILE`
    done
    rc_status -v
    ;;
	reload)
		echo "Reload pen load balancer instances"
		/sbin/killproc -HUP $DAEMON
		touch $PIDFILE
		rc_status -v
	;;
    *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
rc_exit
openSUSE Build Service is sponsored by