Henrik Schneider schrieb:

> Ich möchte einen Daemon oder LKM schreiben, das auf bestimmte Kernel
> Ereignisse reagiert. z.B soll bei dem SIGKILL oder SIGTERM eines anderen
> Programm, mein Programm bestimmte Funktionen ausführen. Nun stehe ich
> vor dem Problem das ich schon seit ein paar Stunden google aber nichts
> anständiges finde. Gibt es nicht eine Möglichkeit an ein Ereigniss im
> Kernel eine Funktion zu hängen? Mein Programm soll nicht in einer
> while-schleife rotieren und 100% CPU verballern nur weil es ständig
> überprüft, ob das und das jetzt passiert ist. Es soll sozusagen vom
> Kernel angestoßen werden "huhu Programm, ich hab da nen Prozess beendet,
> mach du jetzt". Mir fehlt einfach der Einstieg. Vielleicht hat jemand
> von euch eine Idee die mir weiter helfen kann.

Wenn Du einmal in der Sekunde mit kill -0 an alle Prozesse drangehst,
die Dich interessieren, kostet das unter Garantie keine 100% CPU:

$ time kill -0 $$

real    0m0.000s
user    0m0.000s
sys     0m0.000s

$ time for i in `seq 1 50000`; do kill -0 $$; done

real    0m0.978s
user    0m0.964s
sys     0m0.024s

Oder für weniger Anspruchslose, mit einem Intervall von einer Minute in
der Crontab:

* * * * * killall -0 httpd || /etc/init.d/httpd restart

-martin

-- 
Martin Schmitt / Schmitt Systemberatung / www.scsy.de
--> http://www.pug.org/index.php/Benutzer:Martin <--

Attachment: signature.asc
Description: OpenPGP digital signature

-- 
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an