Website-Suche

Erfahren Sie anhand von Beispielen, wie Sie den Befehl „fuser“ unter Linux verwenden


Eine der wichtigsten Aufgaben in der Linux-Systemadministration ist das Prozessmanagement. Es umfasst mehrere zu überwachende Vorgänge, die Signalisierung von Prozessen sowie die Festlegung von Prozessprioritäten im System.

Es gibt zahlreiche Linux-Tools/Dienstprogramme zur Überwachung/Verwaltung von Prozessen wie top, ps, pgrep, kill, killall, nice und viele andere.

In diesem Artikel erfahren Sie, wie Sie Prozesse mithilfe eines leistungsstarken Linux-Dienstprogramms namens fuser finden.

Empfohlene Lektüre: Finden Sie die am häufigsten ausgeführten Prozesse nach höchster Speicher- und CPU-Auslastung

fuser ist ein einfaches, aber leistungsstarkes Befehlszeilendienstprogramm, mit dem Prozesse anhand der Dateien, Verzeichnisse oder Sockets lokalisiert werden können, auf die ein bestimmter Prozess zugreift. Kurz gesagt, es hilft einem Systembenutzer, Prozesse mithilfe von Dateien oder Sockets zu identifizieren.

So verwenden Sie Fuser in Linux-Systemen

Die herkömmliche Syntax für die Verwendung von fuser lautet:

fuser [options] [file|socket]
fuser [options] -SIGNAL [file|socket]
fuser -l 

Nachfolgend finden Sie einige Beispiele für die Verwendung von fuser zum Auffinden von Prozessen auf Ihrem System.

Finden Sie heraus, welcher Prozess auf ein Verzeichnis zugreift

Wenn Sie den Befehl fuser ohne Option ausführen, werden die PIDs der Prozesse angezeigt, die derzeit auf Ihr aktuelles Arbeitsverzeichnis zugreifen.

fuser .
OR
fuser /home/tecmint

Für eine detailliertere und klarere Ausgabe aktivieren Sie -v oder --verbose wie folgt. In der Ausgabe gibt fuser den Namen des aktuellen Verzeichnisses aus, dann die Spalten des Prozesseigentümers (USER) und der Prozess-ID (PID). , den Zugriffstyp (ACCESS) und den Befehl (COMMAND) wie im Bild unten.

fuser -v

In der Spalte ZUGRIFF sehen Sie Zugriffstypen, die durch die folgenden Buchstaben gekennzeichnet sind:

  1. c – aktuelles Verzeichnis
  2. e – eine ausführbare Datei, die ausgeführt wird
  3. f – Datei öffnen, f wird jedoch in der Ausgabe weggelassen
  4. F – Datei zum Schreiben öffnen, F wird ebenfalls von der Ausgabe ausgeschlossen
  5. r – Stammverzeichnis
  6. m – mmap-Datei oder gemeinsam genutzte Bibliothek

Finden Sie heraus, welcher Prozess auf ein Dateisystem zugreift

Als Nächstes können Sie wie folgt bestimmen, welche Prozesse auf Ihre Datei ~.bashrc zugreifen:

fuser -v -m .bashrc

Die Option -m NAME oder --mount NAME bedeutet, alle Prozesse zu benennen, die auf die Datei NAME zugreifen. Falls Sie ein Verzeichnis als NAME buchstabieren, wird es spontan in NAME/ geändert, um jedes Dateisystem zu verwenden, das möglicherweise in diesem Verzeichnis gemountet ist.

Empfohlene Lektüre: Finden Sie die 15 wichtigsten Prozesse nach Speichernutzung unter Linux

So töten und signalisieren Sie Prozesse mithilfe der Fixiereinheit

In diesem Abschnitt werden wir uns mit der Verwendung von fuser befassen, um Prozesse zu beenden und Signale an sie zu senden.

Um einen Prozess zu beenden, der auf eine Datei oder einen Socket zugreift, verwenden Sie die Option -k oder --kill wie folgt:

sudo fuser -k .

Um einen Prozess interaktiv zu beenden, bei dem Sie aufgefordert werden, Ihre Absicht zu bestätigen, die Prozesse zu beenden, die auf eine Datei oder einen Socket zugreifen, verwenden Sie die Option -i oder --interactive:

sudo fuser -ki .

Die beiden vorherigen Befehle töten alle Prozesse, die auf Ihr aktuelles Verzeichnis zugreifen. Das an die Prozesse gesendete Standardsignal ist SIGKILL, außer wenn -SIGNAL verwendet wird .

Empfohlene Lektüre: Eine Anleitung zu den Kill-, Pkill- und Killall-Befehlen unter Linux

Sie können alle Signale mit den Optionen -l oder --list-signals wie folgt auflisten:

sudo fuser --list-signals 

Daher können Sie wie im nächsten Befehl ein Signal an Prozesse senden, wobei SIGNAL eines der in der obigen Ausgabe aufgeführten Signale ist.

sudo fuser -k -SIGNAL

Der folgende Befehl sendet beispielsweise das HUP-Signal an alle Prozesse, bei denen Ihr Verzeichnis /boot geöffnet ist.

sudo fuser -k -HUP /boot 

Versuchen Sie, die Manpage von fuser durchzulesen, um erweiterte Nutzungsoptionen sowie zusätzliche und detailliertere Informationen zu erhalten.

Das ist es für den Moment. Sie können uns über den Feedback-Bereich unten erreichen, wenn Sie Hilfe benötigen oder Vorschläge machen möchten.