Hi Sebastian,
Ich lasse hier regelmäßig ein Skript laufen, dass mehrere
Programme nacheinander aufruft. Jeder Aufruf kann einige Zeit
(bis zu mehrere Stunden) in Anspruch nehmen. Jetzt möchte ich
einbauen, dass zwischen diesen einzelnen Programmaufrufen die
Zeit überprüft wird und falls eine bestimmte Uhrzeit
überschritten wurde, das Skript abgebrochen wird. Mein Problem
ist, dass ich nicht weiß, wie ich die Zeit abfrage
wie waere es mit date? Also z.B.
date +"%Y%m%d%H%M%S"
und
überprüfe, ob eine bestimmte Uhrzeit überschritten ist (incl.
möglichem Datumswechsel).
Kann mir jemand weiterhelfen?
Sebastian.
Was du willst, ist wahrscheinlich eine Art Timeout-Funktion. Probiers doch mal mit Signalen innerhalb des Shellscripts:
#! /usr/bin/ksh
export PIDPARENT=$$ # aktuelle PID (an die wird ein
# USR1-Signal gesendet
TIMEOUT=10 # solange warten, dann gibts eine
# Notbremse
ABORT=0 # Flag: Schleife beenden
trap "ABORT=1" USR1 # Signalbehandlung fuer USR1-Signal
# einschalten
( # Watchdog scharfmachen (als
# Hintergrundprozess)
sleep ${TIMEOUT}; # warte Timeout Sek., dann
kill -USR1 $PIDPARENT # Abbruch per Signal
) &
while [$ABORT -eq 0] # wenns mal wieder lasenger dauert
do
echo waiting...
sleep 1
done
echo "hier gehts nach while weiter"
Das kann man natürlich alles noch viel schöner machen.
gruss
bernhard