LSFD(1) Dienstprogramme fur Benutzer LSFD(1) BEZEICHNUNG lsfd - Dateideskriptoren auflisten UBERSICHT lsfd [Option] BESCHREIBUNG lsfd ist als ein moderner Ersatz fur lsof(8) auf Linux-Systemen gedacht. Im Gegensatz zu lsof ist lsfd auf den Linux-Kernel spezialisiert; es unterstutzt Linux-spezifische Funktionen wie Namensraume mit einfacherem Code. lsfd ist kein direkter Ersatz fur lsof, da die Befehlszeilenschnittstellen und Ausgabeformate unterschiedlich sind. Die Standardausgabe kann sich andern. Daher sollten Sie vermeiden, die Standardausgabe in Ihren Skripten zu verwenden, wo immer es moglich ist. Definieren Sie in Umgebungen, wo eine stabile Ausgabe erforderlich ist, stets die erwarteten Spalten, indem Sie die Option --output Spaltenliste angeben. lsfd verwendet Libsmartcols fur die Formatierung und Filterung der Ausgabe. Siehe die Beschreibung der Option --output fur die Anpassung des Ausgabeformats und die Option --filter fur die Filterung. Mit lsfd --list-columns erhalten Sie eine Liste aller verfugbaren Spalten. OPTIONEN -l, --threads listet auf Thread-Ebene auf. -J, --json verwendet das JSON-Ausgabeformat. -n, --noheadings gibt keine Uberschriften aus. -o, --output Liste gibt an, welche Spalten ausgegeben werden sollen. Im Abschnitt AUSGABESPALTEN sehen Sie eine Liste aller verfugbaren Spalten. Die voreingestellte Liste der Spalten kann erweitert werden, indem Sie die Liste im Format +Liste angeben (beispielsweise lsfd -o +DELETED). -r, --raw verwendet das Rohformat fur die Ausgabe. --notruncate kurzt den Text in Spalten nicht. -p, --pid PIDs sammelt Informationen nur zu den angegebenen Prozessen. PIDs ist eine Liste von Prozesskennungen, wobei die Eintrage durch Kommata oder Leerraum getrennt sein konnen. Sie konnen diese Option mit pidof(1) verwenden. Siehe FILTERBEISPIELE. Sowohl die Option -Q mit einem Ausdruck, der die Prozesskennung (PID) enthalt, z.B. -Q (PID == 1), als auch die Option -p, z.B. -p 1, konnen das Gleiche ausgeben, aber die Option -p ist effizienter, da sie in einem viel fruheren Stadium der Verarbeitung als die Option -Q agiert. -i[4|6], --inet[=4|=6] listet nur IPv4-Sockets und/oder IPv6-Sockets auf. -Q, --filter Ausdruck gibt nur die Dateien aus, welche die im Filterausdruck angegebenen Bedingungen erfullen. Siehe auch scols-filter(5) und FILTERBEISPIELE. -C, --counter Bezeichnung:Filterausdruck gibt einen benutzerdefinierten Zahler zur Verwendung in der Ausgabe mit --summary an. lsfd erstellt einen Zahler mit der angegebenen Bezeichnung. Wahrend des Sammelns der Informationen zahlt lsfd die Dateien, die die Bedingungen des Filterausdrucks erfullen und speichert die ermittelte Anzahl im Zahler mit der angegebenen Bezeichnung. lsfd wendet die mit den --filter-Optionen angegebenen Filter vor dem Zahlen an; Dateien, die von den Filtern ausgeschlossen werden, werden nicht gezahlt. Weitere Informationen zu Filterausdrucken finden Sie in scols-filter(5). Die Bezeichnung sollte weder { noch : enthalten. Indem Sie diese Option mehrfach angeben, konnen Sie mehrere Zahler definieren. Siehe auch ZAHLERBEISPIELE. --summary[=when] steuert die Ausgabe der Zeilen der Zusammenfassung. Das optionale Argument wann kann only, append oder never sein. Wenn das Argument wann weggelassen wird, wird die Vorgabe only verwendet. Die Zusammenfassung meldet Zahler. Ein Zahler besteht aus einer Bezeichnung und einem ganzzahligen Wert. Mit der Option --counter konnen Sie einen Zahler definieren. Falls Sie keinen Zahler definieren, verwendet lsfd zur Erstellung der Zusammenfassung voreingestellte Zahler (Standardzahler). ACHTUNG: Die gemeinsame Verwendung von --summary und --json konnte die Ausgabe unbrauchbar machen. Zulassig ist nur die Kombination von --summary=only und --json. --debug-filter gibt die internen Datenstrukturen fur den Filter aus und beendet das Programm. Dies ist nur fur lsfd-Entwickler nutzlich. --dump-counters zeigt die in der Ausgabe mit --summary verwendete Definition der Zahler an. --hyperlink[=mode] Print paths as terminal hyperlinks. The mode can be set to "always", "never", or "auto". The optional argument when can be set to "auto", "never", or "always". If the when argument is omitted, it will default to "auto". The "auto" setting means that hyperlinks will only be used if the output is on a terminal. -H, --list-columns listet verfugbare Spalten auf, die Sie mit der Option --output angeben konnen. -h, --help zeigt einen Hilfetext an und beendet das Programm. -V, --version Display version and exit. AUSGABESPALTEN Jede Spalte hat einen Typ. Die Typen werden in < und > eingefasst. ACHTUNG: Die Namen und Typen der Spalten sind noch nicht stabil. Sie konnten in zukunftigen Veroffentlichungen geandert werden. AINODECLASS Klasse des anonymen Inodes. ASSOC Assoziation zwischen Datei und Prozess. BLKDRV Aus /proc/devices ermittelter Treibername des blockorientierten Gerats. BPF-MAP.ID Bpf-Zuweisungs-ID. BPF-MAP.TYPE Dekodierter Name des Bpf-Zuweisungstyps. BPF-MAP.TYPE.RAW Bpf-Zuweisungstyp (roh). BPF.NAME Bpf-Objektname. BPF-PROG.ID Bpf-Programm-ID. BPF-PROG.TAG Bpf program TAG. BPF-PROG.TYPE Dekodierter Name des Bpf-Programmtyps. BPF-PROG.TYPE.RAW Bpf-Programmtyp (roh). CHRDRV Aus /proc/devices ermittelter Treibername des zeichenorientierten Gerats. COMMAND Befehlsname des Prozesses, welcher die Datei geoffnet hat. DELETED Erreichbarkeit aus dem Dateisystem. DEV Kennung des Gerats, welches die Datei enthalt. DEVTYPE Geratetyp (blk, char oder nodev). ENDPOINTS IPC-Endpunktinformation, aus dem Dateideskriptor ermittelt. lsfd sammelt Endpunkte innerhalb der Prozesse, die lsfd einliest; lsfd kann einige Endpunkte verfehlen, wenn Sie die Prozesse mit der Option -p eingrenzen. Das Format der spalte ergibt sich aus dem mit dem Dateideskriptor verbundenen Objekt: FIFO-Typ, Mqueue-Typ, ptmx- und pts-Quellen PID,BEFEHL,ZUORDNUNG[-r][-w] The last characters ([-r][-w]) represent the read and/or write mode of the endpoint. eventfd-Typ PID,BEFEHL,ZUORDNUNG UNIX-STREAM PID,BEFEHL,ZUORDNUNG[-r?][-w?] Zu den letzten Zeichen ([-r?][-w?]), siehe die Beschreibung von SOCK.SHUTDOWN. EVENTFD.ID Eventfd-ID. EVENTPOLL.TFDS Dateideskriptoren, auf die die Eventpoll-Datei abzielt. FD Dateideskriptor fur die Datei. FLAGS Beim Offnen der Datei angegebene Schalter. FUID Benutzerkennung des Dateieigentumers. INET.LADDR Lokale IP-Adresse. INET.RADDR IP-Adresse der Gegenstelle. INET6.LADDR Lokale IPv6-Adresse. INET6.RADDR IPv6-Adresse der Gegenstelle. INODE Inode-Nummer. INOTIFY.INODES Verarbeitete Version von INOTIFY.INODES.RAW. Das Format des Elements ist Inode-Nummer,Inode-Quelle. INOTIFY.INODES.RAW Liste der uberwachten Inodes. Das Format des Elements ist Inode-Nummer,Major-Geratenummer:_Minor-Geratenummer_. KNAME Roher Dateiname, ermittelt aus /proc/PID/fd/Dateideskriptor oder /proc/PID/map_files/Region. KTHREAD Gibt an, ob der Prozess ein Kernel-Thread ist oder nicht. MAJ:MIN Geratekennung fur Spezialgerate oder Kennung des Gerats, welches die Datei enthalt. MAPLEN Lange des Datei-Mappings (in Speicherseiten). MISCDEV Diverses, aus /proc/misc ermitteltes zeichenorientiertes Gerat. MNTID Einhangekennung. MODE Zugriffsmodus (rwx). NAME Verarbeitete Version von KNAME (meist mit KNAME identisch). Einige Dateien haben spezielle Formate und Informationsquellen: AF_VSOCK state=SOCK.STATE type=SOCK.TYPE laddr=VSOCK.LADDR[ raddr=VSOCK.RADDR] raddr is not shown for listening sockets. bpf-map id=BPF-MAP.ID type=BPF-MAP.TYPE[ name=BPF.NAME] bpf-prog id=BPF-PROG.ID type=BPF-PROG.TYPE tag= BPF-PROG.TAG [ name=BPF.NAME] eventpoll tfds=EVENTPOLL.TFDS eventfd id=EVENTFD.ID inotify inodes=INOTIFY.INODES misc:tun iface=TUN.IFACE NETLINK protocol=NETLINK.PROTOKOLL[ lport=NETLINK.LPORT[ group=NETLINK.GRUPPEN]] PACKET type=SOCKETTYP[ protocol=PAKETPROTOKOLL][ iface=PAKETSCHNITTSTELLE] pidfd pid=ZIEL-PID comm=ZIEL-BEFEHL nspid=ZIEL-NAMENSRAUM-PIDs lsfd bezieht TARGET-PID und TARGET-NSPIDS aus /proc/PID/fdinfo/dd. PING state=SOCKETSTATUS[ id=PING.ID][ laddr=INET.ADDRESSE.LOKAL [ raddr=INET.ADDRESSE.FERN]] PINGv6 state=SOCKETSTATUS[ id=PING.ID][ laddr=INET6.ADDRESSE.LOKAL [ raddr=INET6.ADDRESSE.FERN]] ptmx tty-index=PTMX.TTY-INDEX lsfd bezieht PTMX.TTY-INDEX aus /proc/PID/fdinfo/Dateideskriptor. RAW state=SOCK.STATE[ protocol=RAW.PROTOCOL [ laddr=INET.LADDR [ raddr=INET.RADDR]]] RAWv6 state=SOCK.STATE[ protocol=RAW.PROTOCOL [ laddr=INET6.LADDR [ raddr=INET6.RADDR]]] signalfd mask=SIGNALFD.MASK TCP, TCPv6 state=SOCK.STATE[ laddr=TCP.LADDR [ raddr=TCP.RADDR]] timerfd clockid=TIMERFD.CLOCKID[ remaining=TIMERFD.REMAINING [ interval=TIMERFD.INTERVAL]] UDP, UDPv6 state=SOCK.STATE[ laddr=UDP.LADDR [ raddr=UDP.RADDR]] lsfd blendet raddr= aus, falls UDP.FERNE-ADRESSE 0.0.0.0 und UDP.FERNER-PORT 0 ist. UDP-LITE, UDPLITEv6 state=SOCK.STATE[ laddr=UDPLITE.LADDR [ raddr=UDPLITE.RADDR]] UNIX-STREAM state=SOCKET.STATUS[ path=UNIX.PFAD] UNIX state=SOCKET.STATUS[ path=UNIX.PFAD] type=SOCKET.TYP Beachten Sie, dass >>(deleted)<<-Markierungen aus dieser Spalte entfernt sind. Siehe KNAME, DELETED oder XMODE fur die Lesbarkeit der Datei aus dem Dateisystem. NETLINK.GROUPS Netlink-Multicast-Gruppen. NETLINK.LPORT Lokale Netlink-Port-ID. NETLINK.PROTOCOL Netlink-Protokoll. NLINK Anzahl der Links. NS.NAME Name (NS.TYPE:[INODE]) des mit der Datei angegebenen Namensraums. NS.TYPE Typ des mit der Datei angegebenen Namensraums. Der Typ ist >>mnt<<, >>cgroup<<, >>uts<<, >>ipc<<, >>user<<, >>pid<<, >>net<<, >>time<< oder >>unknown<<. OWNER Eigentumer der Datei. PACKET.IFACE Der mit dem Paket-Socket verbundene Schnittstellenname. PACKET.PROTOCOL Dem Paket-Socket zugehoriges L3-Protokoll. PARTITION Aus /proc/partition ermittelter Geratename des blockorientierten Gerats. PID PID des Prozesses, der die Datei geoffnet hat. PIDFD.COMM Befehl des Prozesses, auf den der PID-Dateideskriptor verweist. PIDFD.NSPID Wert des NSpid-Feldes in /proc/pid/fdinfo/Dateideskriptor des PID-Dateideskriptors. Zitat aus kernel/fork.c des Linux-Quellbaums: Falls PID-Namensraume unterstutzt werden, dann gibt diese Funktion ausserdem die PID des angegebenen PID-Dateideskriptors fur alle abhangigen PID-Namensraume aus, beginnend mit dem aktuellen PID-Namensraum der Instanz, das heisst, das PID-Feld und der erste Eintrag im NSpid-Feld werden identisch sein. Beachten Sie, dass sich dies von den PID- und NSpid-Feldern in /proc//status unterscheidet, wo PID und NSpid stets relativ zum PID-Namensraum der Procfs-Instanz angezeigt werden. PIDFD.PID PID des Prozesses, auf den der PID-Dateideskriptor verweist. PING.ID <`Zahl`> ICMP-Echo-Request-ID, die im PING-Socket verwendet wird. POS Dateiposition. RAW.PROTOCOL Protokollnummer des Roh-Sockets. RDEV Geratekennung (falls es sich um eine Spezialdatei handelt). SIGNALFD.MASK Maskierte Signale. SIZE Dateigrosse. SOCK.LISTENING Socket, an dem gelauscht werden soll. SOCK.NETS Inode, der den Netzwerknamensraum identifiziert, zu dem der Socket gehort. SOCK.PROTONAME Protokollname. SOCK.SHUTDOWN Shutdown-Status des Sockets. [-r?] Falls das erste Zeichen ein r ist, ist der Empfang erlaubt. Falls es ein - ist, ist der Empfang nicht erlaubt. Ist es ein ?, ist der Status unbekannt. [-w?] Falls das zweite Zeichen ein w ist, ist die Ubertragung erlaubt. Falls es ein - ist, ist die Ubertragung nicht erlaubt. Ist es ein ?, ist der Status unbekannt. SOCK.STATE Status des Sockets. SOCK.TYPE Typ des Sockets. Hier bedeutet der Typ der zweite Parameter des Socket-Systemaufrufs: o stream o dgram o raw o rdm o seqpacket o dccp o packet SOURCE File system, partition, or device containing the file. For the association having ERROR as the value for TYPE column, lsfd fills this column with syscall:_errno_. STTYPE Rohe Dateitypen, wie von stat(2) zuruckgegeben: BLK, CHR, DIR, FIFO, LINK, REG, SOCK oder UNKN. TCP.LADDR Lokale L3-Adresse (INET.LADDR oder INET6.LADDR) und lokaler TCP-Port. TCP.LPORT Lokaler TCP-Port. TCP.RADDR Ferne L3-Adresse (INET.RADDR oder INET6.RADDR) und ferner TCP-Port. TCP.RPORT Ferner TCP-Port. TID Threadkennung des Prozesses, welcher die Datei geoffnet hat. TIMERFD.CLOCKID Uhr-ID. TIMERFD.INTERVAL Intervall. TIMERFD.REMAINING Verbleibende Zeit. PTMX.TTY-INDEX TTY-Index der Gegenstelle. TUN.IFACE Netzwerkschnittstelle hinter dem TUN-Gerat. TYPE Verarbeitete Version von STTYPE. Gleich mit STTYPE mit Ausnahmen. Fur SOCK wird der Wert von SOCK.PROTONAME ausgegeben. Fur UNKN wird der Wert fur AINODECLASS ausgegeben, falls SOURCE >>anon_inodefs<< ist. If lsfd gets an error when calling a syscall to know about a target file descriptor, lsfd fills this column for it with ERROR. UDP.LADDR Lokale IP-Adresse und lokaler UDP-Port. UDP.LPORT Lokaler UDP-Port. UDP.RADDR IP-Adresse und UDP-Port der Gegenstelle. UDP.RPORT Ferner UDP-Port. UDPLITE.LADDR Lokale IP-Adresse und lokaler UDPLite-Port. UDPLITE.LPORT Lokaler UDP-Port. UDPLITE.RADDR IP-Adresse und UDPLite-Port der Gegenstelle. UDPLITE.RPORT Ferner UDP-Port. UID Benutzerkennung. UNIX.PATH Dateisystem-Pfadname des UNIX-Domain-Sockets. USER Benutzer des Prozesses. VSOCK.LADDR , VSOCK.RADDR Local VSOCK address. The format of the element is VSOCK.LCID:VSOCK.LPORT. Well-known CIDs will be decoded: "*", "hypervisor", "local", or "host". Well-known ports will be decoded: "*". VSOCK.LCID , VSOCK.RCID Local and remote VSOCK context identifiers. VSOCK.LPORT , VSOCK.RPORT Local and remote VSOCK ports. XMODE Erweiterte Version von MODE. Diese Spalte kann weiter anwachsen; es konnten neue Buchstaben zu XMODE hinzugefugt werden, sobald lsfd eine neuen Status von Dateideskriptoren und/oder Speicherzuweisungen unterstutzt. [-r] Geoffnet oder zum Lesen zugewiesen. Dies ist auch in MODE [-w] Geoffnet oder zum Schreiben zugewiesen. Dies ist auch in MODE. [-x] Zur Ausfuhrung des Codes zugewiesen. Dies ist auch in MODE. [-D] Aus dem Dateisystem geloscht. Siehe auch DELETED. [-Ll] locked or leased. l represents a read, a shared lock or a read lease. L represents a write or an exclusive lock or a write lease. If both read/shared and write/exclusive locks or leases are taken by a file descriptor, L is used as the flag. [-m] Multiplexed. If the file descriptor is targeted by a eventpoll file or classical system calls for multiplexing (select, pselect, poll, and ppoll), this bit flag is set. Note that if an invocation of the classical system calls is interrupted, lsfd may fail to mark m on the file descriptors monitored by the invocation. See restart_syscall(2). FILTERBEISPIELE lsfd verfugt uber einige Filteroptionen. In den meisten Fallen genugt es, die Option -Q (oder --filter) zu kennen. In Kombination mit der Option -o (oder --output) konnen Sie die Ausgabe nach Ihren Wunschen anpassen. Die mit den mit den Prozesskennungen (PIDs) 1 und 2 assoziierten Dateien auflisten: # lsfd -Q '(PID == 1) oder (PID == 2)' Das Gleiche auf alternative Weise: # lsfd -Q '(PID == 1) || (PID == 2)' Das Gleiche auf effizientere Weise: # lsfd --pid 1,2 Whitespaces can be used instead of a comma: # lsfd --pid '1 2' pidof(1) fur eine Auflistung der Dateien verwenden, die mit >>firefox<< assoziiert sind: # lsfd --pid "$(pidof firefox)" Den ersten Dateideskriptor auflisten, der vom Prozess mit der Prozesskennung (PID) 1 geoffnet wurde: # lsfd -Q '(PID == 1) and (FD == 1)' Das Gleiche auf alternative Weise: # lsfd -Q '(PID == 1) && (FD == 1)' Alle laufenden ausfuhrbaren Dateien auflisten: # lsfd -Q 'ASSOC == "exe"' Das Gleiche auf alternative Weise: # lsfd -Q 'ASSOC eq "exe"' Das Gleiche, aber nur Dateinamen ausgeben: # lsfd -o NAME -Q 'ASSOC eq "exe"' | sort -u Geloschte Dateien auflisten, die Prozessen zugeordnet sind: # lsfd -Q 'DELETED' Nicht-regulare Dateien auflisten: # lsfd -Q 'TYPE != "REG"' Blockorientierte Gerate auflisten: # lsfd -Q 'DEVTYPE == "blk"' Das Gleiche, aber mit der Spalte TYP: # lsfd -Q 'TYPE == "BLK"' Dateien auflisten, in deren Namen das Verzeichnis >>dconf<< enthalten ist: # lsfd -Q 'NAME =~ ".\*/dconf/.*"' In einer virtuellen QEMU-Maschine geoffnete Dateien auflisten: # lsfd -Q '(COMMAND =~ ".\*qemu.*") and (FD >= 0)' List timerfd files expired within 0.5 seconds: # lsfd -Q '(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)' List processes communicating via unix stream sockets: # lsfd -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH =~ ".+"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS List processes communicating via a specified unix stream socket: # lsfd -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH == "@/tmp/.X11-unix/X0"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS ZAHLERBEISPIELE Die Anzahl der Netlink-Socket-Deskriptoren und Unix-Socket-Deskriptoren ausgeben: # lsfd --summary=only \ -C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \ -C 'unix sockets':'(NAME =~ "UNIX:.*")' VALUE COUNTER 57 netlink sockets 1552 unix sockets Das Gleiche, aber im JSON-Format ausgeben: # lsfd --summary=only --json \ -C 'netlink sockets':'(NAME =~ "NETLINK:.*")' \ -C 'unix sockets':'(NAME =~ "UNIX:.*")' { "lsfd-summary": [ { "value": 15, "counter": "netlink sockets" },{ "value": 798, "counter": "unix sockets" } ] } GESCHICHTE Der Befehl lsfd ist Teil des Pakets util-linux seit Version 2.38. AUTOREN Masatake YAMATO , Karel Zak SIEHE AUCH bpftool(8), bps(8), lslocks(8), lsof(8), pidof(1), proc(5), scols-filter(5), socket(2), ss(8), stat(2), vsock(7) FEHLER MELDEN For bug reports, use the issue tracker . VERFUGBARKEIT Der Befehl lsfd ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv heruntergeladen werden kann. util-linux 2.41 2025-03-29 LSFD(1)