Einführung
Das fuser
-Befehl ist ein Linux-Dienstprogramm, das entwickelt wurde, um festzustellen, welcher Prozess eine bestimmte Datei, Verzeichnis oder Socket verwendet. Es liefert auch Informationen über den Benutzer, der den Prozess ausführt, und den Typ des Zugriffs.
Wie man das fuser-Dienstprogramm verwendet
Sie können die fuser
Handbuchseite überprüfen, um einen Überblick über alle Optionen zu erhalten, die mit fuser
verwendet werden können. Sie können auch fuser
ohne Optionen ausführen, um einen Überblick über die Syntax von fuser
zu erhalten:
- fuser
OutputNo process specification given
Usage: fuser [-fMuv] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...
fuser -l
fuser -V
Show which processes use the named files, sockets, or filesystems.
-a,--all display unused files too
-i,--interactive ask before killing (ignored without -k)
-k,--kill kill processes accessing the named file
-l,--list-signals list available signal names
-m,--mount show all processes using the named filesystems or block device
-M,--ismountpoint fulfill request only if NAME is a mount point
-n,--namespace SPACE search in this name space (file, udp, or tcp)
-s,--silent silent operation
-SIGNAL send this signal instead of SIGKILL
-u,--user display user IDs
-v,--verbose verbose output
-w,--writeonly kill only processes with write access
-V,--version display version information
-4,--ipv4 search IPv4 sockets only
-6,--ipv6 search IPv6 sockets only
- reset options
udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]
Wie man Prozesse in einem Verzeichnis ansieht
fuser
kann auch mit der Option -v verwendet werden, die das Tool im ausführlichen Modus ausführt. Die ausführliche Option wird verwendet, um mehr Ausgaben zu erzeugen, damit der Benutzer beobachten kann, was fuser
tut. Führen Sie fuser
im aktuellen Verzeichnis, .
, aus, während Sie die Option -v
einschließen:
- fuser -v .
Output USER PID ACCESS COMMAND
/home/sammy: sammy 17604 ..c.. bash
In diesem Fall ist der einzige Prozess, der in diesem Verzeichnis läuft, die interaktive bash
-Shell, von der Sie gerade Befehle ausführen.
Wenn der Verbose-Modus aktiviert ist, gibt das Dienstprogramm fuser
Informationen über USER
, PID
, ACCESS
und COMMAND
eines Prozesses. Der Buchstabe c
unter ACCESS
zeigt den Typ des Zugriffs an, was in diesem Fall das aktuelle Verzeichnis bedeutet.c Es gibt auch andere Arten von Zugriffen, wie z.B. executable in Ausführung, root-Verzeichnis, offene file und mapped-Datei oder gemeinsam genutzte Bibliothek.
Wie man Prozesse findet, die Netzwerksockets verwenden
Es kann auch notwendig sein, Prozesse mit TCP- und UDP-Sockets zu suchen. Um dieses Beispiel zu demonstrieren, verwenden Sie zunächst nc
, um einen TCP-Listener am Port 8002 zu erstellen, damit ein laufender Prozess beobachtet werden kann:
- nc -l -p 8002
Dies blockiert das Terminal, solange es läuft. In einem anderen Terminalfenster verwenden Sie fuser
, um den auf TCP-Port 8002 laufenden Prozess mit der Option -n
zu finden:
- fuser -v -n tcp 8002
Output USER PID ACCESS COMMAND
8002/tcp: sammy 17985 F.... nc
Hinweis: Standardmäßig überprüft das Werkzeug fuser
sowohl IPv4- als auch IPv6-Sockets, aber Sie können dies mit den Optionen -4
und -6
ändern, um nur IPv4- oder nur IPv6-Verbindungen zu überprüfen, entsprechend.
Diese Ausgabe zeigt, dass die Prozess-ID (PID
) des Prozesses, der netcat verwendet, 17985
ist und das Kommando, mit dem es gestartet wurde, ’nc‘ lautet. Die Prozess-ID (PID) kann auf verschiedene Arten verwendet werden, einschließlich zum Stoppen oder Beenden eines laufenden Prozesses. Sie können mehr über die Prozessverwaltung erfahren, indem Sie How To Use ps, kill, and nice to Manage Processes in Linux lesen. Sie können auch fuser
selbst verwenden, um Prozesse, die auf bestimmten Ports laufen, mit der -k
-Option zu beenden:
- fuser -k 8002/tcp
Output8002/tcp: 18056
Wenn Sie zu Ihrem ersten Terminalfenster zurücknavigieren, werden Sie feststellen, dass das Programm nc
beendet wurde und zur Shell zurückgekehrt ist.
Das Dienstprogramm fuser kann auch verwendet werden, um spezifische Signale an einen Prozess zu senden. Wenn es mit der Option -k verwendet wird, sendet der fuser-Befehl das KILL-Signal an einen Prozess. Es gibt viele andere Signale, die an einen bestimmten laufenden Prozess gesendet werden können. Sie können diese mit fuser -l
auflisten:
- fuser -l
OutputHUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
Fazit
In diesem Artikel haben Sie einige Beispielverwendungen von fuser
zum Überwachen von verwendeten Ports und Verzeichnissen auf einem Linux-System gelernt. fuser
kann besonders nützlich sein, wenn Sie versuchen zu verstehen, welche unbekannten Prozesse auf Ihrem System ausgeführt werden.
Als nächstes möchten Sie vielleicht lernen, wie Sie netstat
und du
verwenden, um andere Serverressourcen zu überwachen.
Source:
https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command