lsof -p 12345
listet alle Dateien auf, die von einem Prozess geöffnet wurden, dessen PID 12345 ist, jedoch nur für einen bestimmten Zeitpunkt.
Wie können wir einen Prozess kontinuierlich vom Anfang bis zum Ende überwachen (bis der Prozess beendet ist), um jede einzelne Datei aufzulisten / anzuzeigen, auf die der Prozess während seiner gesamten Lebensdauer zugreift?
Antworten:
Versuchen Sie es mit
strace -p 12345
; Es sollte das tun, was Sie erreichen wollen.Die Ausgabe kann gefiltert werden, um nur geöffnete Dateien anzuzeigen ( Dan D.'s Kommentar ):
Hinweis: Mit können Sie auch schnell laufende Prozesse verfolgen
strace -e open <command>
.quelle
strace -p {pid} | grep -i "Open" | tee files_opened.log
. Mit der Tastegrep
können Sie die Ausgabe nach dem gewünschten Systemaufruf filtern (zopen()
. B. ).strace
kann das besser alsgrep
mit der-e
Option:strace -e open
Das neue Dienstprogramm Fatrace wird dies tun: https://launchpad.net/fatrace/
Verwenden Sie nicht die Option -p, da dies das Gegenteil von dem bedeutet, was es in lsof oder anderen Dienstprogrammen bedeutet.
quelle
Dadurch wird Ihr Befehl wiederholt und der Bildschirm jedes Mal gelöscht:
WARNUNG: Dadurch werden schnelle Dateizugriffe verpasst und es können nur langjährige Dateien angezeigt werden
quelle
strace
.lsof