Fuser

Aus xinux.net
Zur Navigation springen Zur Suche springen

Funktion

Identifizieren der Prozesse, die eine Datei oder ein Dateisystem benutzen, fuser gibt die Prozeß-IDs der Prozesse aus, die Dateien oder lokale Dateisysteme verwenden. Auf jede Prozeß-ID folgt ein einbuchstabiger

Code

c Der Prozeß verwendet die Datei als aktuelles Verzeichnis.
f Die Datei ist geöffnet.
m Es handelt sich um eine gemeinsam genutzte Bibliothek.
r Es handet sich um das Wurzelverzeichnis-

Alle Benutzer, die /dev/kmem und /dev/mem lesen dürfen, können fuser benutzen, aber nur ein privilegierter Benutzer kann Prozesse eines anderen Benutzers beenden, fuser funktioniert nicht mit entfernten (NFS-)Dateien.

Wenn mehr als eine Gruppe von Dateien angegeben wird, können die Optionen für alle weiteren Dateigruppen neu angegeben werden. Ein einzelner Querstrich (-) hebt alle aktuell gültigen Optionen wieder auf und läßt für die nächste Gruppe von Dateien neue Optionen gelten.

Optionen

Option Zweck
-- Alle Optionen auf ihre Defaults zurücksetzen.
-Signal Das Signal Signal anstelle von SIGKILL schicken.
-a Informationen über alle Dateien anzeigen, auch wenn keine Prozesse auf sie zugreifen.
-i Beim Benutzer zurückfragen, bevor ein Prozeß beendet wird. Wird ignoriert, wenn nicht auch -k angegeben wird.
-k An jeden Prozeß SIGKILL schicken.
-l Die Signalnamen ausgeben.
-n tcp,udp oder file Der Namensraum file ist default
-m Erwartet, daß die Dateien auf einem eingehängten Dateisystem liegen; alle Dateien, die auf dieses Dateisystem zugreifen, berücksichtigen.
-s wenige Ausgaben.
-u Der Login-Name des Benutzers folgt der Prozeß-ID in Klammern.
-v Verbose-Modus
-V Versionsinformationen anzeigen.

Beispiele

Signale anzeigen

root@zero:~# fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS UNUSED

Welcher Prozess greift auf das tmp Verzeichnis zu

root@zero:~# fuser -a /tmp/
/tmp/:                3294c

Welcher User greit auf /var zu.

root@zero:~# fuser -vu /var/
                     USER        PID ACCESS COMMAND
/var/:               xinux     10005 ..c.. (xinux)sh

Wer hat den TCP Port 80 geöffnet:

root@zero:~# fuser -vu -n tcp 80
                     USER        PID ACCESS COMMAND
80/tcp:              root       5006 F.... (root)apache2
                     www-data   5007 F.... (www-data)apache2
                     www-data   5009 F.... (www-data)apache2
                     www-data   5010 F.... (www-data)apache2
                     www-data   5013 F.... (www-data)apache2
                     www-data   5015 F.... (www-data)apache2

Beenden der Prozess die auf Port 80 zugreifen.

root@zero:~# fuser -k -n tcp 80
80/tcp:              10183 10185 10187 10188 10189 10190

Mit Rückfragen root@zero:~# fuser -ik -n tcp 80

80/tcp:              10213 10215 10217 10218 10219 10220
Kill process 10213 ? (y/N)
...