On Mon, Mär 12, 2001 at 07:43:23 +0100, Bernd Brodesser wrote:
* Danilo Reinhardt schrieb am 12.Mär.2001:
gibt es eine möglichkeit in einem Skript einige Anweisungen anzugeben, die garantiert ausgeführt werden. Also auch wenn ich das Skript mit Ctrl-C abbreche oder zum Beispiel ein aus dem Skript aufgerufenes Programm mit Error terminiert?
Nein geht nicht. Im Bezug zu CTRL-C hast Du ja schon Hinweise auf trap bekommen, aber mit einem kill -9 kanst Du den Prozeß immer abbrechen, ohne was dagegen machen zu können.
Wenn ein Programm ein Error hat, so ist es egal und es geht weiter. Oder kann es sein, daß das Programm ein Signal abgibt?
Um auch die nicht abzufangenden Fälle abzufangen ;-) hilft Dir vielleicht folgender Ansatz: Schreib beim Erzeugen des Lockfiles die PID (ID des Prozesses) weg und werte (statt einfach nur die Existenz des Lockfiles auszuwerten) diese PID aus. Wenn kein Prozess mit dieser PID mehr existiert, dann ist er wohl aus irgendeinem Grund nicht mehr dazu gekommen, die Datei zu löschen. Das könnte so aussehen: <untested> lockfile=/pfad/zur/lockdatei if test -f $lockfile; then ps a `cat $lockfile` >/dev/null 2>&1 || rm -f $lockfile fi test -f $lockfile && exit -1 || echo $$ >$lockfile </untested> Jan