So verwenden Sie den Fuser-Befehl im Linux-System

So verwenden Sie den Fuser-Befehl im Linux-System

Was ist Fuser Command?

Der Befehl fuser ist ein sehr cleveres Unix-Dienstprogramm zum Auffinden von Prozessen, die eine bestimmte Datei, ein bestimmtes Verzeichnis oder einen bestimmten Socket verwenden. Es enthält außerdem Informationen über den Benutzer, dem der Prozess gehört, und den Zugriffstyp. . Das Fuser-Tool zeigt die Prozess-ID (PID) jedes Prozesses an, der eine bestimmte Datei oder ein bestimmtes Dateisystem verwendet.

Installieren

Wenn Ihre vereinfachte Version mit Fuser läuft, wird die folgende Meldung angezeigt:

-bash: fuser: Befehl nicht gefunden

Führen Sie zur Installation bitte den folgenden Befehl aus:

[winbert@winbert-server ~]$ sudo yum -y installiere psmisc

Wie verwende ich den Fuser-Befehl?

Mit dem Befehl „man“ können Sie das Hilfehandbuch für jeden Befehl anzeigen. Die beste Möglichkeit, neue Dinge, insbesondere Linux-Befehle, zu lernen, besteht jedoch darin, echte Beispiele zu lesen und ständig Befehle in das Terminal einzugeben. Führen Sie den folgenden Befehl im Terminal aus, um Informationen zu den Verwendungsoptionen des Fuser-Dienstprogramms zu erhalten.

[winbert@winbert-server ~]$ fuser
Keine Prozessspezifikation angegeben
Verwendung: fuser [-fMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...
  Fixiereinheit -l
  Fixiereinheit -V
Zeigen Sie an, welche Prozesse die benannten Dateien, Sockets oder Dateisysteme verwenden.

 -a, --all zeigt auch ungenutzte Dateien an
 -i, --interactive vor dem Beenden fragen (ohne -k ignoriert)
 -k, --kill Prozesse beenden, die auf die genannte Datei zugreifen
 -l, --list-signals listet verfügbare Signalnamen auf
 -m, --mount zeigt alle Prozesse an, die die genannten Dateisysteme oder Blockgeräte verwenden
 -M, --ismountpoint erfüllt die Anforderung nur, wenn NAME ein Einhängepunkt ist
 -n,--namespace SPACE Suche in diesem Namensraum (Datei, UDP oder TCP)
 -s, --silent stiller Vorgang
 -SIGNAL sendet dieses Signal anstelle von SIGKILL
 -u, --user zeigt Benutzer-IDs an
 -v, --verbose ausführliche Ausgabe
 -w,--writeonly beendet nur Prozesse mit Schreibzugriff
 -V, --version zeigt Versionsinformationen an
 -4, --ipv4 nur nach IPv4-Sockets suchen
 -6, --ipv6 nur nach IPv6-Sockets suchen
 - Optionen zurücksetzen

 UDP/TCP-Namen: [lokaler_Port][,[rmt_host][,[rmt_port]]]

So zeigen Sie die Prozesse mithilfe eines Verzeichnisses an

Das Fuser-Programm kann mit der Option -v verwendet werden, die das Tool im ausführlichen Modus ausführt. Mit der Option „Ausführlich“ wird eine detaillierte Ausgabe auf dem Computerbildschirm erzeugt, sodass der Benutzer in Echtzeit sehen kann, was das Dienstprogramm tut.

[winbert@winbert-server ~]$ fuser -v .
      BENUTZER-PID-ZUGRIFFSBEFEHLEN
/home/winbert: winbert 1435 ..c.. bash

Die obige Ausgabe zeigt, dass fuser Informationen zu USER , PID , ACCESS und COMMAND bereitstellt, wenn es im ausführlichen Modus ausgeführt wird. Das Zeichen c unter ACCESS gibt die Zugriffsart an und bedeutet „aktuelles Verzeichnis“. Es gibt viele Zugriffstypen, z. B. e (ausgeführte ausführbare Datei), r (Stammverzeichnis), f (Datei öffnen. f wird im Standardanzeigemodus weggelassen), F (Datei zum Schreiben öffnen. F wird im Standardanzeigemodus weggelassen) und m (mmap-Datei oder gemeinsam genutzte Bibliothek).

Sehen Sie, welcher Prozess Ihren TCP- oder UDP-Socket verwendet?

Manchmal müssen Sie Prozesse mithilfe von TCP- und UDP-Sockets finden. Um diese Prozesse zu finden, verwenden Sie die Option -n . Mit der Option -n wird der entsprechende Namespace ausgewählt.

[root@huidukongjian-h4 Docker]# fuser -v -n tcp 80
      BENUTZER-PID-ZUGRIFFSBEFEHLEN
80/tcp: root 27411 F … Docker-Proxy

Standardmäßig sucht Fuser sowohl in IPv6- als auch in IPv4-Sockets, aber die Standardeinstellung kann mit -4 und -6 geändert werden. Die Option -4 steht für IPv4 und die Option -6 für IPv6 . Beachten Sie, dass fuser die PID nur an stdout ausgibt, alles andere wird an stderr gesendet.

Das Ergebnis fuser -v -n tcp 80 zeigt, dass die Prozess-ID des Prozesses, docker verwendet, 27411 ist und dass der zum Starten des Prozesses verwendete Befehl docker-proxy ist. Eine Prozess-ID (PID) kann auf viele Arten verwendet werden, eine davon ist die Prozessbeendigung. Bei Verwendung mit einer PID beendet der Kill-Befehl den Prozess basierend auf dieser Prozess-ID. fuser können auch Prozesse beendet werden, die auf bestimmte Dateien zugreifen. Im folgenden Befehl wird die Option -k verwendet, um den Prozess zu beenden, der den auf Port 123 ausgeführten tcp Listener verwendet. Um sicherzustellen, dass der Benutzer nicht den falschen Prozess beendet, verwenden Sie die Option -i , um den Benutzer vor dem Beenden des Prozesses um eine Bestätigung zu bitten.

Fixiereinheit -k 123/tcp

Verwenden Sie den Befehl fuser -k mit der Option -i um vor dem Beenden des Vorgangs eine Benutzerbestätigung anzufordern. Der Benutzer kann mit y für „ja“ oder N antworten, um den Prozess nicht abzubrechen.

fuser -i -k 123/tcp
123/tcp: 12216
Prozess 12216 beenden? (j/n)
Verwenden Sie die Option -6, um nach IPv6-Sockets zu suchen.

Der folgende Befehl verwendet Fuser im ausführlichen Modus und versucht, einen IPv6-Socket zu finden, der auf Port 123 läuft.

fuser -v -n tcp -6 123

Finden Sie den Prozess, der ein bestimmtes Dateisystem belegt

Die Option -m kann mit dem Befehl fuser verwendet werden, um Prozesse zu finden, die auf Dateien im Dateisystem zugreifen. Diese Option erfordert einen Dateinamen als Eingabeargument. Die Option -m ist sehr nützlich, insbesondere wenn sie verwendet wird, um Prozesse zu erkennen, die auf das Dateisystem zugreifen, und um zu beendende Prozesse zu identifizieren.

Der folgende Befehl zeigt alle Prozesse an, die auf das Dateisystem zugreifen, in dem sich „example.txt“ befindet. Sehen Sie sich genau an, wie die Option -m mit fuser funktioniert.

[root@huidukongjian-h4 Docker]# fuser -v -m data/v2/config.json 
      BENUTZER-PID-ZUGRIFFSBEFEHLEN
/root/docker-v2/data/v2/config.json:
      Root-Kernel-Mount /
      Wurzel 1 .rce.systemd
      Wurzel 2 .rc.. kthreadd
      Wurzel 3.rc..rcu_gp
      Wurzel 4 .rc.. rcu_par_gp
      Wurzel 6 .rc.. kworker/0:0H-kbl
      Wurzel 8 .rc.. mm_percpu_wq
      Wurzel 9 .rc.. ksoftirqd/0
      Wurzel 10 .rc.. rcu_sched
      Wurzel 11 .rc.. Migration/0
      Wurzel 12 .rc.. Watchdog/0
      Wurzel 13 .rc.. cpuhp/0
      Wurzel 16 .rc.. netns
      Wurzel 17 .rc.. kauditd
      Wurzel 18 .rc.. khungtaskd
      Wurzel 19 .rc..oom_reaper
      Wurzel 20 .rc..writeback
      Wurzel 21 .rc.. kcompactd0
      Wurzel 22.rc..ksmd
      Wurzel 23.rc..khugepaged
      Wurzel 24 .rc.. Krypto
      Wurzel 25 .rc..kintegrityd
      Wurzel 26.rc..kblockd
      Wurzel 27 .rc.. tpm_dev_wq
      Wurzel 28 .rc..md
      Wurzel 29 .rc.. edac-poller
      Wurzel 30 .rc.. watchdogd
      Wurzel 42 .rc.. kswapd0
      Wurzel 93 .rc.. kthrotld
      Wurzel 94 .rc.. acpi_thermal_pm
      Wurzel 95 .rc.. kmpath_rdacd
      Wurzel 96 .rc.. kaluad
      root 97 .rc.. ipv6_addrconf
      Wurzel 98 .rc.. kstrp
      Wurzel 326 .rc.. scsi_eh_0
      Wurzel 327 .rc.. scsi_tmf_0
      Wurzel 329 .rc.. kworker/0:1H-kbl
      Wurzel 361 .rc.. ata_sff
      Wurzel 363 .rc.. scsi_eh_1
      Wurzel 365 .rc..scsi_tmf_1
      Wurzel 366 .rc.. scsi_eh_2
      Wurzel 367 .rc..scsi_tmf_2
      Wurzel 387 .rc..xfsalloc
      Wurzel 390 .rc.. xfs_mru_cache
      Wurzel 391 .rc.. xfs-buf/vda1
      root 394 .rc.. xfs-data/vda1
      Wurzel 395 .rc.. xfs-conv/vda1
      Wurzel 396 .rc.. xfs-cil/vda1
      root 397 .rc.. xfs-reclaim/vda
      root 398 .rc.. xfs-log/vda1
      root 399 .rc.. xfs-eofblocks/v
      Wurzel 400 .rc.. xfsaild/vda1
      root 486 .rce.systemd-journal
      rpc 541 .rce.
      Wurzel 543 Frce.auditd
      root 545 .rce.sedispatch
      Wurzel 558 .rc.. rpciod
      Wurzel 559 .rc.. kworker/u3:0
      Wurzel 561 .rc..xprtiod
      Wurzel 582 Frce.sssd
      polkitd 585 .rce. polkitd
      Wurzel 589 .rce.rngd
      dbus 593 frce. dbus-daemon
      chrony 612 .rce. chronyd
      Wurzel 652 Frce.sssd_be
      Wurzel 668 Frce.sssd_nss
      Wurzel 671 .rc.. ttm_swap
      Wurzel 672 .rc..nfit
      root 675 frce.systemd-logind
      Wurzel 683 Frce.gssproxy
      root 740 frce.NetworkManager
      Grundton 743 frz. gestimmt
      root 814 frce.systemd-udevd
      Wurzel 889 frce.sshd
      root 890 Frce. rsyslogd
      Wurzel 895 frce.agetty
      Wurzel 898 frz. crond
      Wurzel 899 frce.agetty
      Wurzel 21821 .rc.. kworker/u2:0-flu
      Wurzel 25475 frce.sshd
      root 25480 .rce.systemd
      Wurzel 25485 frce. (sd-pam
      Wurzel 25491 frce.sshd
      Wurzel 25492 frce.bash
      Wurzel 25705 Frce.containerd
      Wurzel 25706 Frce.dockerd
      Wurzel 26375 .rc.. kworker/u2:1-eve
      root 27251 Fr.e. Containerd-Shim
      root 27267 F...m v2
      root 27273 Fr.e. Containerd-Shim
      Wurzel 27295 ....m sh
      root 27400 .rce.docker-proxy
      root 27411 .rce.docker-proxy
      root 27416 Fr.e. Containerd-Shim
      Wurzel 27432 ....m sh
      Wurzel 27478 ....m sh
      root 27479 F...m nginx
      root 27480 ....m schlaf
      (unbekannt) 27481 F...m nginx
      root 27561 ....ich schlafe
      root 27705 .rc.. kworker/0:0-xfs-
      root 27765 .rc.. kworker/0:1-xfs-
      Wurzel 27836 .rc.. kworker/0:2-even
      Wurzel 27860 frce.sshd
      Wurzel 27883 frce.sshd
      sshd 27884 frce.sshd

fuser können Sie außerdem spezifische Anweisungen an einen Prozess senden. Bei Verwendung mit der Option -k sendet fuser KILL -Anweisung an den Prozess. Es gibt viele Befehle, die an einen laufenden Prozess gesendet werden können. Die Option -l hilft dabei, eine Liste von Befehlen zu finden, die mit fuser verwendet werden können.

[root@huidukongjian-h4 Docker]# fuser -l
HUP 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

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung des Fuser-Befehls im Linux-System. Weitere relevante Inhalte zum Linux-Fuser-Befehl finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der Verwendung des Fuser-Befehls in Linux

<<:  Beispiele für den Import und Export von MySQL-Tabellendaten

>>:  Verwenden von JavaScript zum Implementieren von Karusselleffekten

Artikel empfehlen

Lösen Sie das Problem, dass Docker Pull zurückgesetzt wird

In diesem Artikel wird beschrieben, wie Sie das P...

HTML-Beispielcode zur Implementierung des Tab-Wechsels

Tab-Umschalten ist auch eine gängige Technologie ...

Zusammenfassung der Situationen, in denen MySQL-Indizes nicht verwendet werden

Indextypen in MySQL Im Allgemeinen können sie in ...

Mit CSS3 erstellter Hover-Zoom-Effekt

Ergebnis:Implementierungscode: html <link href...

Implementierung der MySQL8.0.11-Datenverzeichnismigration

Das Standardspeicherverzeichnis von MySQL ist /va...

Detaillierte Schritte zum Einrichten des Hosts Nginx + Docker WordPress Mysql

Umfeld Linux 3.10.0-693.el7.x86_64 Docker-Version...

So rufen Sie das unterbrochene System in Linux auf

Vorwort Langsame Systemaufrufe beziehen sich auf ...

Hintergrundbild-Cache unter IE6

Fehler beim Flackern des CSS-Hintergrundbilds in ...

Ausführliches Tutorial zur Installation von MySQL 8.0.19 (Windows 64 Bit)

Inhaltsverzeichnis MySQL initialisieren MySQL-Die...

Lösen Sie das Problem der Angabe der UDP-Portnummer im Docker

Wenn Docker einen Container startet, gibt es den ...

Grafisches Tutorial zur Installation von MySQL 5.7.17 (Windows)

Ich habe vor Kurzem mit dem Studium der Datenbank...

CSS3-Textanimationseffekte

Wirkung html <div Klasse="sp-container&qu...