Bestimmen Sie, auf welche Dateien ein Prozess zugreift

9

Wie würde ich alle Dateien herausfinden, auf die ein bestimmter Prozess zugreift?

Ich benutze Ubuntu 9.04.

juan2raid
quelle

Antworten:

11

lsof listet geöffnete Dateien und zugehörige Prozess-IDs auf. Es listet alles auf, wenn keine Optionen angegeben sind.

Es besteht die Möglichkeit, -pgeöffnete Dateien für einen einzelnen Prozess aufzulisten. Bei einem Prozess mit PID 6714 werden die von diesem Prozess geöffneten Dateien aufgelistet:

    lsof -p 6714

Um nur reguläre Dateien aufzulisten, kann grep verwendet werden, um die Ausgabe von lsof zu filtern:

    lsof -p 6714 | grep REG

Wenn es robuster sein muss als mit grep, kann die -FOption verwendet werden, wird dann aber komplexer. Aus der lsof-Manpage :

Wenn die Option -F angegeben ist, erzeugt lsof eine Ausgabe, die für die Verarbeitung durch ein anderes Programm geeignet ist - z. B. ein awk- oder Perl-Skript oder ein C-Programm.

Das hängt von Ihren Anforderungen ab.

Peter Mortensen
quelle
1
Ich mag es, '-b' zu lsof hinzuzufügen, es wird etwas schneller gehen. Außerdem füge ich 2> / dev / null vor der Pipe zu grep hinzu.
kbyrd