Das nützlichste Werkzeug ist lsof . Es zeigt, welche Dateien von welchen Prozessen verwendet werden. Wenn /media/KINGSTON
es sich um einen Einhängepunkt handelt (der Gerätename würde auch funktionieren), zeigt der folgende Befehl alle Dateien an, die auf diesem Einhängepunkt verwendet werden:
lsof /media/KINGSTON
Wenn Sie diesen Befehl als normaler Benutzer ausführen, werden nur Ihre eigenen Prozesse angezeigt¹. Führen Sie sudo lsof /media/KINGSTON
den Befehl aus , um alle Benutzerprozesse anzuzeigen.
Die Ausgabe von lsof
sieht folgendermaßen aus:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zsh4 31421 gilles cwd DIR 8,1 4096 130498 /var/tmp
zsh4 31421 gilles txt REG 8,1 550804 821292 /bin/zsh4
zsh4 31421 gilles mem REG 8,1 55176 821326 /usr/lib/zsh/4.3.10/zsh/complist.so
zsh4 31421 gilles 12r REG 8,1 175224 822276 /usr/share/zsh/functions/Completion.zwc
In der COMMAND
Spalte wird der Name der ausführbaren Programmdatei und in der PID
Spalte die Prozess-ID angezeigt. Die NAME
Spalte zeigt den Dateinamen. Möglicherweise wird angezeigt, (deleted)
ob die Datei beim Öffnen gelöscht wurde (wenn eine Datei gelöscht wird, hat sie keinen Namen mehr, ist aber noch vorhanden, bis der letzte Prozess, der sie verwendet, die Datei schließt). USER
sollte selbsterklärend sein. Die anderen Spalten spielen hier keine Rolle, außer vielleicht FD
, was zeigt, wie die Datei vom Prozess verwendet wird:
cwd
: aktuelles Arbeitsverzeichnis
txt
: das ausführbare Programm²
mem
: eine Datei mit Speicherzuordnung (hier als offene Datei betrachten)
- eine Zahl: eine tatsächlich geöffnete Datei; Ein nachfolgender Buchstabe gibt den Öffnungsmodus an, z. B.
r
zum Lesen und w
zum Schreiben
Es gibt keine mechanische Möglichkeit, das Fenster zu lokalisieren, in dem eine Datei geöffnet ist (dies ist in der Tat technisch nicht sinnvoll: Wenn ein Prozess mehrere Fenster hat, ist eine Datei nicht besonders mit dem einen oder anderen Fenster verknüpft), und es gibt auch keine einfache Möglichkeit, eine Datei zu identifizieren Das Fenster eines Prozesses (und natürlich muss ein Prozess keine Fenster haben). In der Regel reichen jedoch der Befehlsname und der Dateiname aus, um den Täter zu lokalisieren und die Datei ordnungsgemäß zu schließen.
Wenn Sie die Datei nicht schließen können und nur alles beenden möchten, können Sie den Prozess mit kill 31421
(wo 31421
ist die Prozess-ID) oder kill -HUP 31421
("auflegen") beenden . Wenn Ebene Tötung der Trick nicht tun, töten mit extremem Vorurteil: kill -KILL 31421
.
Es gibt eine GUI für lsof, glsof , aber es ist noch nicht ganz fertig für die Hauptsendezeit und noch nicht für Ubuntu gepackt .
¹
Lsof kann einige Informationen zu den Prozessen anderer Benutzer auflisten, erkennt den Einhängepunkt jedoch nicht und listet sie daher nicht auf, wenn Sie einen Einhängepunkt angeben.
²
Ausführbarer Code wird in Diskussionen über ausführbare Formate häufig als Text bezeichnet.