#!/bin/bash
#
# sccl_probe_res Funktionalitaet der Ressource testen
#
# Aufruf:
#
# sccl_probe_res <lock> <paketname> <sek> <num> <prg> [<prgpars> ...]
#
# Die Funktionalitaet der Ressource <paketname> wird mit dem Skript <prg> geprueft.
# Wenn das <prg> einen Fehlerwert liefert, dann wird das Paket gestoppt und auf
# diesem Knoten gestartet.
#
########################################################################################
#echo $0 $*
#
. `dirname $0`/globals.functions
#
########################################################################################
#
LOCK=$1
PKG=$2
SEKS=$3
NUM=$4
PRG=$5
#
if [[ "$SEKS" != "`echo $SEKS | sed 's/[^0-9]*//g'`" || $SEKS -eq 0 || $# -lt 4 ]]
 then
  echo "usage: `basename $0` <paketname> <sek> <prg> <num> [<prgpars> ...]"
  exit 1
fi
#
shift 5
while true
 do
  if "$PRG" "$@"
   then
    sleep $SEKS
  else
    rm $LOCKDIR/$LOCK.pid $LOCKDIR/$LOCK$LOCKEXTENSION
    ./sccl_stop --tstkill $PKG
    if [[ -n "$NUM" ]]
     then
      if [[ $NUM -ge 1 ]]
       then
        X="STSTMAX=$(( $NUM - 1 ))"
        ./sccl_start -x "$X" $PKG
      else
        echo "Restart-Limit erreicht!"
        echo "Restart wird abgebrochen"
      fi
    else
      ./sccl_start $PKG
    fi
    exit 0
  fi
done
