Am Freitag, 23. Februar 2001 01:01 schrieb Reinhard Foerster:
Es ist eben theoretisch *nicht* möglich, den "bösen" als solchen zu finden und ggf. zu killen. Weil eben dein "Tanzt einer aus der Reihe"-Prozess *nicht* deterministisch zu ermitteln ist. Wäre das der Fall, würde ja kein Mensch mehr über dieses Themea reden.
Also verlassen wir mal die Theorie und gehen in die Praxis: ftp://cfml.sourceforge.net/pub/cfml/erwin-0.1pre.tar.gz
So stelle ich mir das vor: Ein Daemon läuft im Hintergrund (der braucht noch nicht mal root-Rechte), und kontrolliert anhand der ihm gegebenen Regeln alle Prozesse, die er unter seinen Fittichen hat. Beispielsweise gibts du ihm HylaFax in die Hand, wenn es mal wieder zuviel Hunger als Speicher hat: Du sagst, 20 MB für das Postscriptgenerierungszeugs, und dann ist Sense. Hält sich Hyla nicht dran, gibt es SIGTERM/SIGKILL zum Nachtisch.
Ein anderes Beispiel wären OpenGL-Programme, die locker (mit <20 Zeilen C realisierbar) das X einfrieren können. Oder ein karchiveur, der sich an bzip2-Dateien verschluckt. Solche Programme haben einen gewissen Bedarf an Speicher, aber man kann auch etwa das Maximum abschätzen.
Sicher hat das nicht unbedingt was mit dem Kernel zu tun, und Programme, die nicht über Erwin gestartet werden betrifft es eh nicht, aber wenn man z.B. /usr/local/memoryleak2.0/bin/memleak als Skript auf .../memleak-bin macht und in das Skript schreibt: #!/bin/sh erwin execute safe mem=10M memleak-bin, dann müßte es klappen.
Den Parser werde ich noch programmieren müssen, aber das Programmskelett ist schon mal da (im Moment ist vieles hart einprogrammiert).
Josef Spillner