PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenströme eines bestimmten Prozesses



Hotnine
10-10-2003, 15:53
Hi!

ich will eine Art Logprogramm schreiben, dies soll alle Dateien, die geändert, erstellt oder gelöscht werden registrieren. Deshalb meine Frage an euch, kann man alle Datenströme eines Prozesses und dessen Unterprozesse aufzeichnen und eventuell sogar Puffern?
Bin für jeden Tipp dankbar.

CU Till

cyneox
12-10-2003, 12:52
wie willst du denn die datenströme puffern ???mit datenströmen meinst du stdout,stdin und stderr oder???

und wie willst du die dateien registrieren,die gelöscht wurden???du beziehst dich wohl auf filedeskriptoren,oder??? biite eine genauere erklärung...

Hotnine
12-10-2003, 12:58
Hi!

nein, ich meine mit Datenströmen Zugriffe auf Dateien, ich will letztendlich alle Zugriffe auf Dateien die die Kindprozesse tätigen mitlogen. Damit ich genau weiß, welche Dateien durch die Prozesse angelegt wurden.
Genauer kann ich es z.Zt. leider nicht ohne Fragen beschreiben, da ich mich bei der LinuxSystemprogrammierung leider noch nicht so gut auskenne.

CU Till

cyneox
12-10-2003, 18:07
die kindprozesse erben die filedeskriptoren vom elternprozess...wie du checken kannst , welche filedeskriptoren geöffnet sind hab ich leider vergessen.ich hab mich vor einiger zeit mit der systemprogrammierung beschäftigt aber du weißt schon:ohne praxis vergißt man schnell.haste überhaupt n buch über die systemprogrammierung???es würde dir viel helfen.

Hotnine
13-10-2003, 05:29
Hi!

das bedeutet, das es kein Problem ist, die Dateien, die die Kinprozesse schreiben zu logen, wenn ich dich richtig verstehe oder?
Nein , ein Buch zur Systemprogrammierung hab ich leider nicht.
Da sollte es ja reichen, wenn man ein wenig rumprobiert mit Kindprozessen und fds.

CU Till

alterkaempfer
13-10-2003, 08:07
Morgen

Vielleicht hilft dir dieser Link weiter

http://www.pronix.de/C/Linuxprogrammierung/index.shtml

mfg

alterkaempfer

cyneox
13-10-2003, 13:07
Original geschrieben von Hotnine
Hi!

das bedeutet, das es kein Problem ist, die Dateien, die die Kinprozesse schreiben zu logen, wenn ich dich richtig verstehe oder?


genau ...du kannst die fds von den den kindprozessen auch mitlogen.

Hotnine
13-10-2003, 14:41
Danke erstmal für den Link.
Könntet ihr mich eventuell auf den richtigen Weg lenken, ich weiß nämlich leider nicht wie ich das anstellen soll. Mir ist leider bis jetzt der Umgang mit Prozessen und fd's noch weitgehend fremd.

CU Till

Hotnine
21-10-2003, 12:11
Ich nochmal :)

Ich bin mittlerweile soweit, dass ich weiß, dass die FD's eines jeden Prozesses unter /prod/$PID/fd gelistet sind. Mein Problem ist aber jetzt, dass die FD's so schnell wieder weg sind, dass ich sie garnicht auswerten kann :(
Hätte einer ne Idee wie ich das anstellen kann?

CU Till

cyneox
21-10-2003, 16:26
ich arbeite daran ein ähnliches programm zu schreiben wie lsof...aber das wird noch dauern ...es ist nämlich sehr kompliziert mit der prozesstabelle und allem anderen...

Hotnine
21-10-2003, 16:39
Hi!

Ich hatte auch schon die Idee über die Prozesstabelle an die FD's zu gelangen, jedoch weiß ich absolust nicht wie ich das anstellen soll. Habe schon im Netz gesucht, aber dazu findet man fast nichts.
Das Teil heißt ja "process open file table" aber darunter findet man leider absolut nichts spezifisches. Falls du einen Tipp hast, wie man weiter kommen könnte würde ich mich freuen. Ansonsten wäre es nett, wenn du mir bescheit sagen könntest, wenn du das Proggi fertig hast.

CU Till

cyneox
22-10-2003, 15:08
es wird noch dauern denn ich bin noch schüler :) und ich muss auch was lernen...

aber wie gesagt lsof(list_all_open_files) ist ,glaub ich, auf jeden bei jeder distri dabei ...schau einfach nach...es ist wirklich ein gutes tool