2015-06-03 8 views
7

kernel: 3.4 +Wie man neue Gabeln im Kernel hört

Kennt jemand anderer Weise neben der Verwendung von Kernel-Prozessereignissen Connector "neue" Gabeln zu "hören".

Ich möchte in meinem Modul jedes Mal benachrichtigt werden, wenn eine neue Aufgabe (Prozess) erstellt wird.

+4

Ich verstehe nicht, warum pnotify (http://lwn.net/Articles/153187/) nie in den Kernel gemacht, das wäre perfekt gewesen! –

Antwort

1

Sie könnten versuchen, dazu einen LSM hook zu verwenden. Die Funktion, die Sie implementieren möchten, ist security_task_create

+0

Das würde bedeuten, ein minimales LSM-Modul zu erstellen, das in Wirklichkeit das Standard-DAC- oder selinux-LSM-Modul ersetzt. Ich möchte das Standard-LSM-Modul nicht nur zum Zweck des Einhängens ersetzen ... –

1

Ich weiß nicht über den Status von SystemTap, aber ich denke, Sie können eine Funktion Grenze verfolgen wie DTrace auf Solaris mit SystemTap. Sie müssen wissen, welche Linux-Kernel-Funktion zu verfolgen ist, aber das ist der einfachere Teil, den ich vermute.

+0

"SystemTap bietet eine kostenlose Software- (GPL) -Infrastruktur, die das Sammeln von Informationen über das laufende Linux-System vereinfacht. Dies unterstützt die Diagnose eines Leistungs- oder Funktionsproblems " Ich versuche nicht, ein Problem zu lösen, sondern Informationen zur Laufzeit in meinem Modul, damit ich darauf reagieren kann. –

+0

Würde Ihre Anforderung nicht in die Kategorie "Sammeln von Informationen über das laufende Linux-System" fallen? Ich weiß für eine Tatsache, dass SystemTap fehlt die Intelligenz/Fähigkeit, Sie zu zwingen, diese Informationen zu verwenden, um allein zu beheben;) – pavan

+0

es sieht nur aus mir könnte es ein zu großer Hammer für diese Mücke sein ... –

0

Es gibt ein paar mögliche Hacks, die Sie verwenden könnten, um dies zu lösen.

Sie könnten den relevanten Syscall-Tabelleneintrag einhängen, sys_fork durch Ihren Code ersetzen und die ursprüngliche sys_fork aufrufen.

Sonst könnten Sie sys_fork selbst haken.