Re: trap und killall

Thomas Moritz <[email protected]> Sat, 6 Mar 2010 18:46:13 +0100
Newsgroups gmane.linux.suse.programming
Organization -
Message-ID <[email protected]>
Am Samstag, 6. März 2010 16:52:54 schrieb Sebastian Siebert:

Hallo Sebastian,

> > in einem Script setze ich ein lock-File, was beim Beenden
> > wieder geloescht wird.
> > Mit trap moechte ich erreichen, dass das lock-File auch
> > verschwindet, wenn das Script mit killall scriptname
> > abgeschossen wird. SIGINT, SIGKILL usw. scheinen in dem Fall
> > nicht zu greifen. kill -l zeigt ja alle Moeglichkeiten, aber
> > welche greift bei killall?
> 
> Schau mal hier:
> <http://de.wikibooks.org/wiki/Linux-Kompendium:_Shellprogrammieru
> ng#Fallensteller:_Auf_Traps_reagieren>
> 
> Und hier alle Signale:
> <http://linux.die.net/man/7/signal>
> 
> Google sei dank. :-)

Danke! Hier werden die Sig's etwas ausfuehrlicher dokumentiert als 
bei kill -l
 
> > Beispiel-Schnipsel:
> >
> > #!/bin/sh
> >
> > lockfile="/dev/shm/myscript.lock"
> >
> > trap "rm -f $lockfile" SIGKILL
> 
> # es hätte wie folgt lauten müssen (9 = SIGKILL):
> trap "rm -f $lockfile" 9

Ich wuerde sagen, die bash akzeptiert die 9 und das SIGKILL.
Zumindest klappt das mit SIGINT und Ctrl-C.
Das Script kann ich mit kill -9 <pid> killen, aber trap reagiert 
nicht auf 9 und nicht auf SIGKILL!
Der Hund liegt irgendwo anders begraben. Ich werde nachher mal 
_ohne_ Variable testen und das lock-File direkt angeben.

trap "rm -f /dev/shm/myscript.lock" SIGKILL 

MfG Th. Moritz
-- 
Es gibt nur eines, was teurer ist als
eine Frau, nämlich eine Ex-Frau…
                     (Jack Nicholson)