Mich beschäftigt gerade folgendes:
In einem Terminal ( ssh) öffne ich eine Datei in einem Editor:
joe testdatei
...in einem anderen Terminal greppe ich die Ausgabe von lsof nach "testdatei" - das ergibt jedoch nix ausser das er zB die zugehörigen Bibliotheken zum joe-Prozess erkennt.
Heisst lsof nicht so etwas wie "list open files"?
lsof-Frage
Wer sagt denn, dass der Texteditor die "Testdatei" ständig offen halten muss? Teste nochmal mit einem
Das *hält* die "testdatei" ständig offen und so wird das von lsof auch angezeigt.
Janka
Code: Alles auswählen
$ cat >testdatei
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.
Ah...ok. Da fehlt mir wohl noch ein bisschen Verständnis zum Dateikonzept unter Linux.
Ist eine Datei also für lsof nur dann "offen", wenn Sie grad als Datenstrom über Standard-Eingabe oder Ausgabe irgendwohin unterwegs ist?
Dann könnte lsof folglich auch nicht Dateien anzeigen, die ein User in einer Anwendung momentan geöffnet hat?
Aber lsof zeigt ja immerhin die Bibliotheken von joe an?!
Diese müssten doch genauso im Speicher sein, wie eine offene Datei in joe, oder nicht?
Ist eine Datei also für lsof nur dann "offen", wenn Sie grad als Datenstrom über Standard-Eingabe oder Ausgabe irgendwohin unterwegs ist?
Dann könnte lsof folglich auch nicht Dateien anzeigen, die ein User in einer Anwendung momentan geöffnet hat?
Aber lsof zeigt ja immerhin die Bibliotheken von joe an?!
Diese müssten doch genauso im Speicher sein, wie eine offene Datei in joe, oder nicht?
- hastifranki
- Beiträge: 259
- Registriert: 06. Mai 2006 19:58
Nein. Eine Datei ist dann offen, wenn ein Prozess ein Handle auf diese Datei hält. Das *kann* ein Prozess die ganze Zeit über tun, er *muss* aber nicht. Er kann auch genausogut die Datei einmal zu Anfang ins RAM einlesen und dann wieder schließen. Arbeiten tut er dann mit der Arbeitskopie im RAM.splish hat geschrieben:Ah...ok. Da fehlt mir wohl noch ein bisschen Verständnis zum Dateikonzept unter Linux. Ist eine Datei also für lsof nur dann "offen", wenn Sie grad als Datenstrom über Standard-Eingabe oder Ausgabe irgendwohin unterwegs ist?
Das ist nicht Linux-spezifisch, sondern offensichtlich spezifisch für "joe" (oder eine bestimmte Art, joe zu benutzen).
lsof zeigt nicht an, wer was im Speicher hat. Wenn du das wissen willst, musst du das jeweilige Programm mit einem Debugger analysieren.Dann könnte lsof folglich auch nicht Dateien anzeigen, die ein User in einer Anwendung momentan geöffnet hat?
Aber lsof zeigt ja immerhin die Bibliotheken von joe an?!
Diese müssten doch genauso im Speicher sein, wie eine offene Datei in joe, oder nicht?
Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
Ich mag die Schreie.