LSFD(1)

BEZEICHNUNG
lsfd - Dateideskriptoren auflisten

ÜBERSICHT

lsfd [Option]

BESCHREIBUNG

lsfd ist als ein moderner Ersatz für lsof(8) auf Linux-Systemen gedacht. Im Gegensatz zu lsof ist lsfd auf den Linux-Kernel spezialisiert; es unterstützt Linux-spezifische Funktionen wie Namensräume mit einfacherem Code. lsfd ist kein direkter Ersatz für lsof, da die Befehlszeilenschnittstellen und Ausgabeformate unterschiedlich sind.

Die Standardausgabe kann sich ändern. Daher sollten Sie vermeiden, die Standardausgabe in Ihren Skripten zu verwenden, wo immer es möglich 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 für die Formatierung und Filterung der Ausgabe. Siehe die Beschreibung der Option --output für die Anpassung des Ausgabeformats und die Option --filter für die Filterung. Mit lsfd --list-columns erhalten Sie eine Liste aller verfügbaren Spalten.

OPTIONEN

-l, --threads
    listet auf Thread-Ebene auf.

-J, --json
    verwendet das JSON-Ausgabeformat.

-n, --noheadings
    gibt keine Überschriften aus.

-o, --output Liste
    gibt an, welche Spalten ausgegeben werden sollen. Im Abschnitt AUSGABESPALTEN sehen Sie eine Liste aller verfügbaren 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 für die Ausgabe.

--notruncate
    kürzt den Text in Spalten nicht.

-p, --pid Liste
    sammelt Informationen nur zu den angegebenen Prozessen. Die Liste ist eine durch Kommata getrennte Liste von Prozesskennungen. Siehe auch FILTERBEISPIELE.

-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 Ausdruck angegebenen Bedingungen erfüllen. Siehe auch scols-filter(5) und FILTERBEISPIELE.

    Die Option -Q mit einer PID (zum Beispiel -Q PID==1) und die Option -p (zum Beispiel -p 1) führen zum gleichen Ergebnis. Die Option -p ist jedoch wesentlich effizienter, da sie in einem deutlich früheren Verarbeitungsschritt ausgeführt wird als die Option -Q.

-C, --counter Bezeichnung:Filterausdruck
    gibt einen benutzerdefinierten Zähler zur Verwendung in der Ausgabe mit --summary an. lsfd erstellt einen Zähler mit der angegebenen Bezeichnung. Während des Sammelns der Informationen zählt lsfd die Dateien, die die Bedingungen des Filterausdrucks erfüllen und speichert die ermittelte Anzahl im Zähler mit der angegebenen Bezeichnung. lsfd wendet die mit den --filter-Optionen angegebenen Filter vor dem Zählen an; Dateien, die von den Filtern ausgeschlossen werden, werden nicht gezählt.

    Weitere Informationen zu Filterausdrücken finden Sie in scols-filter(5). Die Bezeichnung sollte weder { noch : enthalten. Indem Sie diese Option mehrfach angeben, können Sie mehrere Zähler definieren. Siehe auch ZÄHLERBEISPIELE.

--summary[=Modus]
    steuert die Ausgabe der Zeilen der Zusammenfassung. Das optionale Argument Modus kann only, append oder never sein. Wenn das Argument Modus weggelassen wird, wird die Vorgabe only verwendet.

    Die Zusammenfassung meldet Zähler. Ein Zähler besteht aus einer Bezeichnung und einem ganzzahligen Wert. Mit der Option --counter können Sie einen Zähler definieren. Falls Sie keinen Zähler definieren, verwendet lsfd zur Erstellung der Zusammenfassung voreingestellte Zähler (Standardzähler).

    ACHTUNG: Die gemeinsame Verwendung von --summary und --json könnte die Ausgabe unbrauchbar machen. Zulässig ist nur die Kombination von --summary=only und --json.

--debug-filter
    gibt die internen Datenstrukturen für den Filter aus und beendet das Programm. Dies ist nur für lsfd-Entwickler nützlich.

--dump-counters
    zeigt die in der Ausgabe mit --summary verwendete Definition der Zähler an.

--hyperlink[=wann]
    gibt Pfade als Terminal-Hyperlinks aus. Das optionale Argument wann kann auf »always«, »never« oder »auto« gesetzt werden. Falls das Argument fehlt, ist »auto« die Vorgabe. Die Einstellung »auto« bedeutet, dass Hyperlinks nur dann verwendet werden, wenn die Ausgabe auf einem Terminal erfolgt.

-H, --list-columns
    listet die Spalten auf,die mit der Option --output angegeben werden können. Wenn Sie dies zusammen mit --json oder --raw verwenden, wird die Liste in einem maschinenlesbaren Format angezeigt.

-h, --help
    zeigt einen Hilfetext an und beendet das Programm.

-V, --version
    zeigt Versionsinformationen an und beendet das Programm.

UMGEBUNGSVARIABLEN

LIBSMARTCOLS_DEBUG=all
    aktiviert die Debug-Ausgabe für libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on
    verwendet sichtbare Auffüllzeichen.

AUSGABESPALTEN

Jede Spalte hat einen Typ. Die Typen werden in < und > eingefasst.

ACHTUNG: Die Namen und Typen der Spalten sind noch nicht stabil. Sie könnten in zukünftigen Veröffentlichungen geändert werden.

AINODECLASS <Zeichenkette>
    Klasse des anonymen Inodes.

ASSOC <Zeichenkette>
    Assoziation zwischen Datei und Prozess.

BLKDRV <Zeichenkette>
    Aus /proc/devices ermittelter Treibername des blockorientierten Geräts.

BPF-MAP.ID <Zahl>
    Bpf-Zuweisungs-ID.

BPF-MAP.TYPE <Zeichenkette>
    Dekodierter Name des Bpf-Zuweisungstyps.

BPF-MAP.TYPE.RAW <Zahl>
    Bpf-Zuweisungstyp (roh).

BPF.NAME <Zeichenkette>
    Bpf-Objektname.

BPF-PROG.ID <Zahl>
    Bpf-Programm-ID.

BPF-PROG.TAG <Zeichenkette>
    Bpf-Programm-TAG.

BPF-PROG.TYPE <Zeichenkette>
    Dekodierter Name des Bpf-Programmtyps.

BPF-PROG.TYPE.RAW <Zahl>
    Bpf-Programmtyp (roh).

CHRDRV <Zeichenkette>
    Aus /proc/devices ermittelter Treibername des zeichenorientierten Geräts.

COMMAND <Zeichenkette>
    Befehlsname des Prozesses, welcher die Datei geöffnet hat.

DELETED <boolesch>
    Erreichbarkeit aus dem Dateisystem.

DEV <Zeichenkette>
    Kennung des Geräts, welches die Datei enthält.

DEVTYPE <Zeichenkette>
    Gerätetyp (blk, char oder nodev).

ENDPOINTS <Zeichenkette>
    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]

        Die letzten Zeichen ([-r][-w]) repräsentieren den Lese- und/oder Schreibmodus des Endpunkts

    eventfd-Typ
        PID,BEFEHL,ZUORDNUNG

    UNIX
        Gleichbedeutend mit UNIX-STREAM.

        In einem Container füllt lsfd die Spalte ENDPOINTS möglicherweise nicht. lsfd verwendet*sock_diag*(7), um Informationen über UNIX-Endpunkte zu sammeln. SELinux kanndie Verwendung von sock_diag in einem Container einschränken. Sie können diese Einschränkung aufheben, indem Sie den booleschen Wert 1 für virt_sandbox_use_netlink festlegen. Weitere Informationen finden Sie unter container_selinux(8).

    UNIX-STREAM
        PID,BEFEHL,ZUORDNUNG[-r?][-w?]

        Zu den letzten Zeichen ([-r?][-w?]), siehe die Beschreibung von SOCK.SHUTDOWN.

EVENTFD.ID <Zahl>
    Eventfd-ID.

EVENTPOLL.TFDS <Zeichenkette>
    Dateideskriptoren, auf die die Eventpoll-Datei abzielt.

FD <Zahl>
    Dateideskriptor für die Datei.

FLAGS <Zeichenkette>
    Beim Öffnen der Datei angegebene Schalter.

FUID <Zahl>
    Benutzerkennung des Dateieigentümers.

INET.LADDR <Zeichenkette>
    Lokale IP-Adresse.

INET.RADDR <Zeichenkette>
    IP-Adresse der Gegenstelle.

INET6.LADDR <Zeichenkette>
    Lokale IPv6-Adresse.

INET6.RADDR <Zeichenkette>
    IPv6-Adresse der Gegenstelle.

INODE <Zahl>
    Inode-Nummer.

INOTIFY.INODES <Zeichenkette>
    Verarbeitete Version von INOTIFY.INODES.RAW. Das Format des Elements ist Inode-Nummer,Inode-Quelle.

INOTIFY.INODES.RAW <Zeichenkette>
    Liste der überwachten Inodes. Das Format des Elements ist Inode-Nummer,Major-Gerätenummer:_Minor-Gerätenummer_.

KNAME <Zeichenkette>
    Roher Dateiname, ermittelt aus /proc/PID/fd/Dateideskriptor oder /proc/PID/map_files/Region.

KTHREAD <boolesch>
    Gibt an, ob der Prozess ein Kernel-Thread ist oder nicht.

MAJ:MIN <Zeichenkette>
    Gerätekennung für Spezialgeräte oder Kennung des Geräts, welches die Datei enthält.

MAPLEN <Zahl>
    Länge des Datei-Mappings (in Speicherseiten).

MISCDEV <Zeichenkette>
    Diverses, aus /proc/misc ermitteltes zeichenorientiertes Gerät.

MNTID <Zahl>
    Einhängekennung.

MODE <Zeichenkette>
    Zugriffsmodus (rwx).

NAME <Zeichenkette>
    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« wird für Sockets, an denen gelauscht wird, nicht angezeigt.

    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[ devnetns=TUN.DEVNETNS][ socknetns=SOCK.NETNS]

    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 für die Lesbarkeit der Datei aus dem Dateisystem.

NETLINK.GROUPS <Zahl>
    Netlink-Multicast-Gruppen.

NETLINK.LPORT <Zahl>
    Lokale Netlink-Port-ID.

NETLINK.PROTOCOL <Zeichenkette>
    Netlink-Protokoll.

NLINK <Zahl>
    Anzahl der Links.

NS.NAME <Zeichenkette>
    Name (NS.TYPE:[INODE]) des mit der Datei angegebenen Namensraums.

NS.TYPE <Zeichenkette>
    Typ des mit der Datei angegebenen Namensraums. Der Typ ist »mnt«, »cgroup«, »uts«, »ipc«, »user«, »pid«, »net«, »time« oder »unknown«.

OWNER <Zeichenkette>
    Eigentümer der Datei.

PACKET.IFACE <Zeichenkette>
    Der mit dem Paket-Socket verbundene Schnittstellenname.

PACKET.PROTOCOL <Zeichenkette>
    Dem Paket-Socket zugehöriger Name des L2-Protokolls (dekodiert).

PACKET.PROTOCOL.RAW <Zahl>
    Dem Paket-Socket zugehörige Nummer des L2-Protokolls (roh).

PARTITION <Zeichenkette>
    Aus /proc/partition ermittelter Gerätename des blockorientierten Geräts.

PID <Zahl>
    PID des Prozesses, der die Datei geöffnet hat.

PIDFD.COMM <Zeichenkette>
    Befehl des Prozesses, auf den der PID-Dateideskriptor verweist.

PIDFD.NSPID <Zeichenkette>
    Wert des NSpid-Feldes in /proc/pid/fdinfo/Dateideskriptor des PID-Dateideskriptors.

    Zitat aus kernel/fork.c des Linux-Quellbaums:

        Falls PID-Namensräume unterstützt werden, dann gibt diese Funktion außerdem die PID des angegebenen PID-Dateideskriptors für alle abhängigen PID-Namensräume aus, beginnend mit dem aktuellen PID-Namensraum der Instanz, das heißt, 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/<PID>/status unterscheidet, wo PID und NSpid stets relativ zum PID-Namensraum der Procfs-Instanz angezeigt werden.

PIDFD.PID <Zahl>
    PID des Prozesses, auf den der PID-Dateideskriptor verweist.

PING.ID <`Zahl`>
    ICMP-Echo-Request-ID, die im PING-Socket verwendet wird.

POS <Zahl>
    Dateiposition.

RAW.PROTOCOL <Zeichenkette>
    Protokollname des Roh-Sockets (dekodiert).

        Note

        Der Datentyp dieser Spalte war von v2.39 bis v2.41 <Zahl>.

RAW.PROTOCOL.RAW <Zahl>
    Protokollnummer des Roh-Sockets (roh).

RDEV <Zeichenkette>
    Gerätekennung (falls es sich um eine Spezialdatei handelt).

SIGNALFD.MASK <Zeichenkette>
    Maskierte Signale.

SIZE <Zahl>
    Dateigröße.

SOCK.LISTENING <boolesch>
    Socket, an dem gelauscht werden soll.

SOCK.NETS <Zahl>
    Inode, der den Netzwerknamensraum identifiziert, zu dem der Socket gehört.

SOCK.PROTONAME <Zeichenkette>
    Protokollname.

SOCK.SHUTDOWN <Zeichenkette>
    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 Übertragung erlaubt. Falls es ein - ist, ist die Übertragung nicht erlaubt. Ist es ein ?, ist der Status unbekannt.

SOCK.STATE <Zeichenkette>
    Status des Sockets.

SOCK.TYPE <Zeichenkette>
    Typ des Sockets. Hier bedeutet der Typ der zweite Parameter des Socket-Systemaufrufs:

        • stream

        • dgram

        • raw

        • rdm

        • seqpacket

        • dccp

        • packet

SOURCE <Zeichenkette>
    Dateisystem, Partition oder Gerät, das die Datei enthält. Für die Zuordnungmit ERROR als Wert für die Spalte TYP füllt lsfd diese Spalte mit_Systemaufruf_:_Fehlernummer_.

STTYPE <Zeichenkette>
    Rohe Dateitypen, wie von stat(2) zurückgegeben: BLK, CHR, DIR, FIFO, LINK, REG, SOCK oder UNKN.

TCP.LADDR <Zeichenkette>
    Lokale L3-Adresse (INET.LADDR oder INET6.LADDR) und lokaler TCP-Port.

TCP.LPORT <Zahl>
    Lokaler TCP-Port.

TCP.RADDR <Zeichenkette>
    Ferne L3-Adresse (INET.RADDR oder INET6.RADDR) und ferner TCP-Port.

TCP.RPORT <Zahl>
    Ferner TCP-Port.

TID <Zahl>
    Threadkennung des Prozesses, welcher die Datei geöffnet hat.

TIMERFD.CLOCKID <Zeichenkette>
    Uhr-ID.

TIMERFD.INTERVAL <Zahl>
    Intervall.

TIMERFD.REMAINING <Zahl>
    Verbleibende Zeit.

PTMX.TTY-INDEX <Zahl>
    TTY-Index der Gegenstelle.

TUN.DEVNETNS <Zahl>
    Inode, der den Netzwerknamensraum identifiziert, zu dem das Gerät gehört.

TUN.IFACE <Zeichenkette>
    Netzwerkschnittstelle hinter dem TUN-Gerät.

TYPE <Zeichenkette>
    Verarbeitete Version von STTYPE. Gleich mit STTYPE mit Ausnahmen. Für SOCK wird der Wert von SOCK.PROTONAME ausgegeben. Für UNKN wird der Wert für AINODECLASS ausgegeben, falls SOURCE »anon_inodefs« ist.

    Wenn lsfd bei einem Systemaufruf zur Ermittlung eines Zieldateideskriptors einen Fehler erhält, füllt lsfd diese Spalte mit ERROR.

UDP.LADDR <Zeichenkette>
    Lokale IP-Adresse und lokaler UDP-Port.

UDP.LPORT <Zahl>
    Lokaler UDP-Port.

UDP.RADDR <Zeichenkette>
    IP-Adresse und UDP-Port der Gegenstelle.

UDP.RPORT <Zahl>
    Ferner UDP-Port.

UDPLITE.LADDR <Zeichenkette>
    Lokale IP-Adresse und lokaler UDPLite-Port.

UDPLITE.LPORT <Zahl>
    Lokaler UDP-Port.

UDPLITE.RADDR <Zeichenkette>
    IP-Adresse und UDPLite-Port der Gegenstelle.

UDPLITE.RPORT <Zahl>
    Ferner UDP-Port.

UID <Zahl>
    Benutzerkennung.

UNIX.IPEER < Zahl >
    I-Node-Nummer der Gegenstelle des UNIX-Domain-Sockets.

    Wenn lsfd in einem Container ausgeführt wird, wird die Spalte UNIX.IPEER möglicherweise nicht ausgefüllt. Weitere Informationen finden Sie in der Beschreibung von UNIX in der Spalte ENDPOINTS.

UNIX.PATH <Zeichenkette>
    Dateisystem-Pfadname des UNIX-Domain-Sockets.

USER <Zeichenkette>
    Benutzer des Prozesses.

VSOCK.LADDR <Zeichenkette>, VSOCK.RADDR <Zeichenkette>
    Lokale VSOCK-Adresse. Das Format des Elements ist VSOCK.LCID:VSOCK.LPORT.

Bekannte CIDs werden dekodiert: »*«, »hypervisor«, »local« oder »host«. Bekannte Ports werden dekodiert
    »*«.

VSOCK.LCID <Zahl>, VSOCK.RCID <Zahl>
    Lokale und ferne VSOCK-Kontextbezeichner.

VSOCK.LPORT <Zahl>, VSOCK.RPORT <Zahl>
    Lokale und ferne VSOCK-Ports.

XMODE <Zeichenkette>
    Erweiterte Version von MODE. Diese Spalte kann weiter anwachsen; es könnten neue Buchstaben zu XMODE hinzugefügt werden, sobald lsfd eine neuen Status von Dateideskriptoren und/oder Speicherzuweisungen unterstützt.

    [-r]
        Geöffnet oder zum Lesen zugewiesen. Dies ist auch in MODE

    [-w]
        Geöffnet oder zum Schreiben zugewiesen. Dies ist auch in MODE.

    [-x]
        Zur Ausführung des Codes zugewiesen. Dies ist auch in MODE.

    [-D]
        Aus dem Dateisystem gelöscht. Siehe auch DELETED.

    [-Ll]
        Gesperrt oder geleast. l steht für eine Lese-, eine gemeinsame Sperre oder eine Lese-Lease. L_steht für eine Schreib-, eine exklusive Sperre oder eine Schreib-Lease. Wenn ein Dateideskriptor sowohl Lese-/gemeinsame als auch Schreib-/exklusive Sperren oder Leases verwendet, wird _L als Schalter verwendet.

    [-m]
        Multiplexed. Wenn der Dateideskriptor von einer Eventpoll-Datei oder klassischen Systemaufrufen für Multiplexing (select(2), pselect(2), poll(2) und ppoll(2)) angesprochen wird, wird dieses Bit gesetzt. Beachten Sie, dass lsfd bei einer Unterbrechung des Aufrufs klassischer Systemaufrufe möglicherweise nicht m für die vom Aufruf überwachten Dateideskriptoren markiert. Siehe restart_syscall(2).

FILTERBEISPIELE

lsfd verfügt über einige Filteroptionen. In den meisten Fällen genügt es, die Option -Q (oder --filter) zu kennen. In Kombination mit der Option -o (oder --output) können Sie die Ausgabe nach Ihren Wünschen 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

Kommata statt Leerzeichen verwenden:

    # lsfd --pid '1 2'

pidof(1) für 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 geöffnet wurde:

    # lsfd -Q '(PID == 1) and (FD == 1)'

Das Gleiche auf alternative Weise:

    # lsfd -Q '(PID == 1) && (FD == 1)'

Alle laufenden ausführbaren 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

Gelöschte Dateien auflisten, die Prozessen zugeordnet sind:

    # lsfd -Q 'DELETED'

Nicht-reguläre Dateien auflisten:

    # lsfd -Q 'TYPE != "REG"'

Blockorientierte Geräte 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 geöffnete Dateien auflisten:

    # lsfd -Q '(COMMAND =~ ".\*qemu.*") and (FD >= 0)'

Liste der innerhalb von 0,5 Sekunden abgelaufenen Timerfd-Dateien

    # lsfd -Q '(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)'

Prozesse auflisten, die über Unix-Datenstromsockets kommunizieren

    # lsfd  -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH =~ ".+"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS

Prozesse auflisten, die über einen angegebenen Unix-Datenstromsocket kommunizieren

    # lsfd  -Q 'TYPE == "UNIX-STREAM" && UNIX.PATH == "@/tmp/.X11-unix/X0"' -oUNIX.PATH,PID,COMMAND,FD,SOCK.STATE,ENDPOINTS

ZÄHLERBEISPIELE

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

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

Nutzen Sie zum Melden von Fehlern das

VERFÜGBARKEIT

Der Befehl lsfd ist Teil des Pakets util-linux, welches aus dem heruntergeladen werden kann.