Wenn ich es tue
sudo umount /media/KINGSTON
ich habe
umount: /media/KINGSTON: device is busy.
Ich schließe alle Fenster und stelle sicher, dass alle Shell auf andere Verzeichnisse zeigen. Wie kann ich herausfinden, welcher Prozess das Umount verhindert?
Antworten:
Öffnen Sie ein Terminal:
Es wird so etwas ausgegeben:
Dadurch erhalten Sie die PID der Prozesse, die dieses Volume verwenden. Das zusätzliche Zeichen am Ende von pid gibt zusätzliche Informationen. (c in 3106c)
c - Der Prozess verwendet die Datei als aktuelles Arbeitsverzeichnis.
m - Die Datei wird mit mmap zugeordnet.
o - Der Prozess verwendet sie als offene Datei.
r - Die Datei ist das Stammverzeichnis des Prozesses.
t - Der Prozess greift auf die Datei zu Datei als Textdatei
y - Diese Datei ist das steuernde Terminal für den Prozess
Zum Abmelden töte einfach diese Pids und versuche es erneut
Hinweis: Um den genauen Anwendungsnamen dieser Pids zu ermitteln, können Sie diesen Befehl verwenden
Beispielsweise :
cat /proc/11086/cmdline
Dies wird so etwas wie unten ausgeben.
Hoffe das wird helfen
quelle
ps <pid>
Dateien in / proc zu verwenden, anstatt sie zu bearbeiten, um den Befehlsnamen und die Argumente zu sehen.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: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:In der
COMMAND
Spalte wird der Name der ausführbaren Programmdatei und in derPID
Spalte die Prozess-ID angezeigt. DieNAME
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 vielleichtFD
, was zeigt, wie die Datei vom Prozess verwendet wird:cwd
: aktuelles Arbeitsverzeichnistxt
: das ausführbare Programm²mem
: eine Datei mit Speicherzuordnung (hier als offene Datei betrachten)r
zum Lesen undw
zum SchreibenEs 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
(wo31421
ist die Prozess-ID) oderkill -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.
quelle
Auch das kann helfen:
quelle
grep "media/KINGSTON"
Inzwischen hat sich der Befehl fuser stark verbessert. Sie können den gesamten Job mit einem einzigen Befehl ausführen:
Woher:
k
bricht den beleidigenden Prozess ab,v
zeigt den Prozess und seinen Benutzer im Voraus ani
bittet Sie um Bestätigung.Wenn sich ein Prozess widersetzt, versuchen Sie es erneut mit
fuser -ickv -9
(oder allgemeiner mit-SIGNAL
), der die hartnäckigsten tötet.Aber Sie werden immer einen "unsterblichen" Prozess finden ...!
In diesen Fällen habe ich kürzlich gelernt, zu verwenden
als letzte ressource hat das bisher jedes mal bei mir geklappt.
quelle
vboxmanage
. -_-