Zum Inhalt springen

Lsof: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „ TCP“ durch „ TCP
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{DISPLAYTITLE:lsof}}
{{DISPLAYTITLE:lsof}}
'''lsof''' ('''L'''i'''s'''t '''o'''pen '''f'''iles) - zeigt welche Programme welche [[Datei]]en oder [[Socket (Software)|Sockets]] geöffnet halten.
'''lsof''' ('''L'''i'''s'''t '''o'''pen '''f'''iles) - zeigt welche Programme welche [[Datei]]en oder [[Socket (Software)|Sockets]] geöffnet halten


== Beschreibung ==
== Beschreibung ==
Zeile 13: Zeile 13:
* Character devices (Spezialdateien wie [[/dev/random]]; type=CHR)
* Character devices (Spezialdateien wie [[/dev/random]]; type=CHR)


und noch einige dutzend andere, wie [[AX.25]]-Sockets, Block-Devices usw.
und noch einige dutzend andere, wie [[AX.25]]-Sockets, Block-Devices und weitere


; Ausgabe
; Ausgabe
Zeile 19: Zeile 19:
* hier vorwiegend des [[Secure Shell|sshd]] und ssh-Client
* hier vorwiegend des [[Secure Shell|sshd]] und ssh-Client


  COMMAND     PID   TID       USER  FD      TYPE             DEVICE SIZE/OFF       NODE NAME
  COMMAND   PID TID   USER FD   TYPE       DEVICE SIZE/OFF   NODE NAME
  ...
  ...
  ssh-agent 2678             lbo   3u     unix 0xffff88013e71cac0     0t0       7624 /tmp/ssh-oyerzGJI2633/agent.2633
  ssh-agent 2678       lbo 3u   unix 0xffff88013e71cac0   0t0   7624 /tmp/ssh-oyerzGJI2633/agent.2633
  ssh-agent 2678             lbo   6w     FIFO               0,8     0t0       4795 pipe
  ssh-agent 2678       lbo 6w   FIFO       0,8   0t0   4795 pipe
  ssh-agent 2678             lbo   8r     FIFO               0,8     0t0       4799 pipe
  ssh-agent 2678       lbo 8r   FIFO       0,8   0t0   4799 pipe
  system-co 2866             lbo mem       REG               8,6   162968   1050015 /usr/lib/x86_64-linux-gnu/libssh2.so.1.0.1
  system-co 2866       lbo mem   REG       8,6 162968 1050015 /usr/lib/x86_64-linux-gnu/libssh2.so.1.0.1
  sshd      3031            root cwd       DIR               8,6    4096          2 /
  sshd   3031       root cwd   DIR       8,6   4096     2 /
  sshd      3031            root rtd       DIR               8,6    4096          2 /
  sshd   3031       root rtd   DIR       8,6   4096     2 /
  sshd      3031            root txt       REG               8,6   517088   1053360 /usr/sbin/sshd
  sshd   3031       root txt   REG       8,6 517088 1053360 /usr/sbin/sshd
  sshd      3031            root mem       REG               8,6   131107   1187879 /lib/x86_64-linux-gnu/libpthread-2.13.so
  sshd   3031       root mem   REG       8,6 131107 1187879 /lib/x86_64-linux-gnu/libpthread-2.13.so
  sshd      3031            root mem       REG               8,6   80712   1180726 /lib/x86_64-linux-gnu/libresolv-2.13.so
  sshd   3031       root mem   REG       8,6 80712 1180726 /lib/x86_64-linux-gnu/libresolv-2.13.so
  sshd      3031            root   0u     CHR               1,3     0t0       1028 /dev/null
  sshd   3031       root 0u   CHR       1,3   0t0   1028 /dev/null
  sshd      3031            root   3u     IPv4               8026     0t0       TCP *:ospfapi (LISTEN)
  sshd   3031       root 3u   IPv4       8026   0t0   [[TCP]] *:ospfapi (LISTEN)
  sshd      3031            root   4u     IPv6               8028     0t0       TCP *:ospfapi (LISTEN)
  sshd   3031       root 4u   IPv6       8028   0t0   [[TCP]] *:ospfapi (LISTEN)
  ssh       7314             lbo cwd       DIR               8,7     4096   5767169 /home/lbo
  ssh   7314       lbo cwd   DIR       8,7   4096 5767169 /home/lbo
  ssh       8602             lbo   3r     IPv6             68343     0t0       TCP [2001:470:1f0b:2f2:3189:67c1:b550:9400]:56194->obsd-lbo6:ssh (ESTABLISHED)
  ssh   8602       lbo 3r   IPv6       68343   0t0   [[TCP]] [2001:470:1f0b:2f2:3189:67c1:b550:9400]:56194->obsd-lbo6:ssh (ESTABLISHED)
  ...
  ...
  udevd     3226             root  11u  netlink 0t0     10784 KOBJECT_UEVENT
  udevd   3226       root 11u netlink 0t0   10784 KOBJECT_UEVENT
  ...
  ...


== Ausgabeformat für andere Programme ==
; Ausgabeformat für andere Programme
Für die Verarbeitung der Ausgabe mit Scripten kann mit der Option -F ein alternatives Ausgabeformat erzeugt werden, bei dem in jeder Zeile ein identifizierender Buchstabe gefolgt vom entsprechenden Wert steht. Für jeden laufenden Prozess wird ein mehrzeiliger Abschnitt angelegt, der eingeleitet wird durch die Zeile mit dem Buchstaben p und der Prozess-ID. Innerhalb eines Prozessabschnitts befinden sich Werte wie die User-ID des Prozesses, eingeleitet durch u, außerdem mehrere Abschnitte zu den geöffneten Dateien, eingeleitet durch eine Zeile mit dem Buchstaben f und dem File-Descriptor. Eine beispielhafte Ausgabe für den Prozess sshd mit zwei Datei-Abschnitten sähe dann so aus:
Für die Verarbeitung der Ausgabe mit Scripten kann mit der Option -F ein alternatives Ausgabeformat erzeugt werden, bei dem in jeder Zeile ein identifizierender Buchstabe gefolgt vom entsprechenden Wert steht.  
* Für jeden laufenden Prozess wird ein mehrzeiliger Abschnitt angelegt, der eingeleitet wird durch die Zeile mit dem Buchstaben p und der Prozess-ID.  
* Innerhalb eines Prozessabschnitts befinden sich Werte wie die User-ID des Prozesses, eingeleitet durch u, außerdem mehrere Abschnitte zu den geöffneten Dateien, eingeleitet durch eine Zeile mit dem Buchstaben f und dem File-Descriptor.  


Eine beispielhafte Ausgabe für den Prozess sshd mit zwei Datei-Abschnitten sähe dann so aus:
  ...
  ...
  p5502
  p5502
Zeile 69: Zeile 72:
  ...
  ...


Verwendet wird dieses Ausgabeformat z. B. von einigen Scripten, die mit lsof mitgeliefert werden.
Verwendet wird dieses Ausgabeformat beispielsweise von einigen Scripten, die mit lsof mitgeliefert werden.


== Alltäglicher Nutzen ==
== Anwendungen ==
[[File:lsof.png|mini|400px|[https://www.instagram.com/p/C7q613ZuHMm/ ''lsof'' Beispiele]]]
[[File:lsof.png|mini|400px|[https://www.instagram.com/p/C7q613ZuHMm/ ''lsof'' Beispiele]]]
Sehr oft wird lsof genutzt, wenn der [[Unix]]-Befehl [[Mounten#mount (Unix)|umount]] sich weigert, ein Gerät auszuhängen, wenn noch Dateien auf diesem Gerät bzw. in dessen Mount-Verzeichnis geöffnet sind (die Raute stellt eine Root-Shell dar):
Sehr oft wird lsof genutzt, wenn der [[Unix]]-Befehl [[Mounten#mount (Unix)|umount]] sich weigert, ein Gerät auszuhängen, wenn noch Dateien auf diesem Gerät bzw. in dessen Mount-Verzeichnis geöffnet sind (die Raute stellt eine Root-Shell dar):


  # umount /mount/path
  # umount /mount/path
Zeile 81: Zeile 84:


  # lsof /mount/path
  # lsof /mount/path
  bash 3156             usr cwd DIR               8,33    4096          2 /mount/path
  bash 3156       usr cwd DIR       8,33   4096     2 /mount/path


Aus dem gefundenen Eintrag lässt sich entnehmen, dass der Nutzer ''usr'' noch eine [[Bourne-Again Shell|bash]]-Shell mit [[Prozess-ID|PID]] 3156 laufen hat, die ''/mount/path'' als [[Arbeitsverzeichnis]] (''Current Working Directory'') nutzt, erkennbar am Typ ''DIR''.
Aus dem gefundenen Eintrag lässt sich entnehmen, dass der Nutzer ''usr'' noch eine [[Bourne-Again Shell|bash]]-Shell mit [[Prozess-ID|PID]] 3156 laufen hat, die ''/mount/path'' als [[Arbeitsverzeichnis]] (''Current Working Directory'') nutzt, erkennbar am Typ ''DIR''.
Zeile 89: Zeile 92:
  # umount /mount/path
  # umount /mount/path
  umount: /mount/path: device is busy.
  umount: /mount/path: device is busy.
        (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
    (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))


<noinclude>
<noinclude>
Zeile 95: Zeile 98:
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}


==== Links ====
=== Links ===
===== Weblinks =====
==== Weblinks ====
# https://de.wikipedia.org/wiki/Lsof
# https://de.wikipedia.org/wiki/Lsof
# https://github.com/lsof-org/lsof
# https://github.com/lsof-org/lsof
# [http://linux.die.net/man/8/lsof lsof(8)]
# [https://linux.die.net/man/8/lsof lsof(8)]


[[Kategorie:Linux/Prozesse]]
[[Kategorie:Linux/Prozess/Befehl]]
[[Kategorie:Linux/Datei]]
[[Kategorie:Linux/Befehl]]
[[Kategorie:Linux/Befehl]]
[[Kategorie:Linux/Datei/Verwaltung]]


{{DEFAULTSORT:lsof}}
{{DEFAULTSORT:lsof}}
</noinclude>
</noinclude>

Aktuelle Version vom 4. Juli 2026, 11:54 Uhr

lsof (List open files) - zeigt welche Programme welche Dateien oder Sockets geöffnet halten

Beschreibung

Ausgabeformat

Offene Dateien
  • UNIX Domain Sockets (type=unix)
  • Reguläre Dateien (type=REG)
  • FIFOs (type=FIFO)
  • Geöffnete Verzeichnisse (type=DIR)
  • Internet Domain sockets (type=IPv4 oder type=IPv6)
  • Character devices (Spezialdateien wie /dev/random; type=CHR)

und noch einige dutzend andere, wie AX.25-Sockets, Block-Devices und weitere

Ausgabe

Anzeige unterschiedlicher Typen sehen (Spalte TYPE)

  • hier vorwiegend des sshd und ssh-Client
COMMAND   PID  TID    USER  FD   TYPE       DEVICE SIZE/OFF    NODE NAME
...
ssh-agent 2678       lbo  3u   unix 0xffff88013e71cac0   0t0    7624 /tmp/ssh-oyerzGJI2633/agent.2633
ssh-agent 2678       lbo  6w   FIFO        0,8   0t0    4795 pipe
ssh-agent 2678       lbo  8r   FIFO        0,8   0t0    4799 pipe
system-co 2866       lbo mem    REG        8,6  162968  1050015 /usr/lib/x86_64-linux-gnu/libssh2.so.1.0.1
sshd    3031       root cwd    DIR        8,6   4096     2 /
sshd    3031       root rtd    DIR        8,6   4096     2 /
sshd    3031       root txt    REG        8,6  517088  1053360 /usr/sbin/sshd
sshd    3031       root mem    REG        8,6  131107  1187879 /lib/x86_64-linux-gnu/libpthread-2.13.so
sshd    3031       root mem    REG        8,6  80712  1180726 /lib/x86_64-linux-gnu/libresolv-2.13.so
sshd    3031       root  0u   CHR        1,3   0t0    1028 /dev/null
sshd    3031       root  3u   IPv4        8026   0t0    TCP *:ospfapi (LISTEN)
sshd    3031       root  4u   IPv6        8028   0t0    TCP *:ospfapi (LISTEN)
ssh    7314       lbo cwd    DIR        8,7   4096  5767169 /home/lbo
ssh    8602       lbo  3r   IPv6       68343   0t0    TCP [2001:470:1f0b:2f2:3189:67c1:b550:9400]:56194->obsd-lbo6:ssh (ESTABLISHED)
...
udevd   3226       root 11u  netlink 0t0   10784 KOBJECT_UEVENT
...
Ausgabeformat für andere Programme

Für die Verarbeitung der Ausgabe mit Scripten kann mit der Option -F ein alternatives Ausgabeformat erzeugt werden, bei dem in jeder Zeile ein identifizierender Buchstabe gefolgt vom entsprechenden Wert steht.

  • Für jeden laufenden Prozess wird ein mehrzeiliger Abschnitt angelegt, der eingeleitet wird durch die Zeile mit dem Buchstaben p und der Prozess-ID.
  • Innerhalb eines Prozessabschnitts befinden sich Werte wie die User-ID des Prozesses, eingeleitet durch u, außerdem mehrere Abschnitte zu den geöffneten Dateien, eingeleitet durch eine Zeile mit dem Buchstaben f und dem File-Descriptor.

Eine beispielhafte Ausgabe für den Prozess sshd mit zwei Datei-Abschnitten sähe dann so aus:

...
p5502
g5502
R1
csshd
u0
Lroot
fcwd
a
l
tDIR
D0x811
s4096
i2
k25
n/
ftxt
a
l
tREG
D0x811
s540896
i657919
k1
n/usr/sbin/sshd
...

Verwendet wird dieses Ausgabeformat beispielsweise von einigen Scripten, die mit lsof mitgeliefert werden.

Anwendungen

lsof Beispiele

Sehr oft wird lsof genutzt, wenn der Unix-Befehl umount sich weigert, ein Gerät auszuhängen, wenn noch Dateien auf diesem Gerät bzw. in dessen Mount-Verzeichnis geöffnet sind (die Raute stellt eine Root-Shell dar):

# umount /mount/path
umount: /mount/path: device is busy.

Durch lsof lässt sich nun einfach feststellen, welche Programme beendet werden müssen, um ein erfolgreiches Aushängen zu gewährleisten:

# lsof /mount/path
bash 3156       usr cwd DIR        8,33   4096     2 /mount/path

Aus dem gefundenen Eintrag lässt sich entnehmen, dass der Nutzer usr noch eine bash-Shell mit PID 3156 laufen hat, die /mount/path als Arbeitsverzeichnis (Current Working Directory) nutzt, erkennbar am Typ DIR.

Die mount-Version aus dem util-linux-Paket weist sogar auf lsof hin:

# umount /mount/path
umount: /mount/path: device is busy.
   (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))


Anhang

Siehe auch


  1. https://de.wikipedia.org/wiki/Lsof
  2. https://github.com/lsof-org/lsof
  3. lsof(8)