From 1272be04be0cb803eec87f602edb2e3e6f111aea Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 21:33:34 +0200 Subject: Merging upstream version 2.40. Signed-off-by: Daniel Baumann --- misc-utils/lsfd.1 | 396 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 238 insertions(+), 158 deletions(-) (limited to 'misc-utils/lsfd.1') diff --git a/misc-utils/lsfd.1 b/misc-utils/lsfd.1 index 9baaa42..efc229c 100644 --- a/misc-utils/lsfd.1 +++ b/misc-utils/lsfd.1 @@ -2,12 +2,12 @@ .\" Title: lsfd .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.20 -.\" Date: 2023-12-01 +.\" Date: 2024-03-27 .\" Manual: User Commands -.\" Source: util-linux 2.39.3 +.\" Source: util-linux 2.40 .\" Language: English .\" -.TH "LSFD" "1" "2023-12-01" "util\-linux 2.39.3" "User Commands" +.TH "LSFD" "1" "2024-03-27" "util\-linux 2.40" "User Commands" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 @@ -45,7 +45,7 @@ default outputs in your scripts. Always explicitly define expected columns by us \fB\-\-output\fP \fIcolumns\-list\fP in environments where a stable output is required. .sp \fBlsfd\fP uses Libsmartcols for output formatting and filtering. See the description of \fB\-\-output\fP -option for customizing the output format, and \fB\-\-filter\fP option for filtering. Use \fBlsfd \-\-help\fP +option for customizing the output format, and \fB\-\-filter\fP option for filtering. Use \fBlsfd \-\-list\-columns\fP to get a list of all available columns. .SH "OPTIONS" .sp @@ -103,7 +103,7 @@ List only IPv4 sockets and/or IPv6 sockets. \fB\-Q\fP, \fB\-\-filter\fP \fIexpr\fP .RS 4 Print only the files matching the condition represented by the \fIexpr\fP. -See also \fBFILTER EXAMPLES\fP. +See also \fBscols\-filter\fP(5) and \fBFILTER EXAMPLES\fP. .RE .sp \fB\-C\fP, \fB\-\-counter\fP \fIlabel\fP:\fIfilter_expr\fP @@ -114,7 +114,7 @@ matching \fIfilter_expr\fP, and stores the counted number to the counter named \fIlabel\fP. \fBlsfd\fP applies filters defined with \fB\-\-filter\fP options before counting; files excluded by the filters are not counted. .sp -See \fBFILTER EXPRESSION\fP about \fIfilter_expr\fP. +See \fBscols\-filter\fP(5) about \fIfilter_expr\fP. \fIlabel\fP should not include \f(CR{\fP nor \f(CR:\fP. You can define multiple counters by specifying this option multiple times. .sp @@ -146,6 +146,11 @@ only for \fBlsfd\fP developers. Dump the definition of counters used in \fB\-\-summary\fP output. .RE .sp +\fB\-H\fP, \fB\-\-list\-columns\fP +.RS 4 +List available columns that you can specify at \fB\-\-output\fP option. +.RE +.sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Display help text and exit. @@ -177,6 +182,41 @@ BLKDRV <\f(CRstring\fP> Block device driver name resolved by \f(CR/proc/devices\fP. .RE .sp +BPF\-MAP.ID <\f(CRnumber\fP> +.RS 4 +Bpf map ID. +.RE +.sp +BPF\-MAP.TYPE <\f(CRstring\fP> +.RS 4 +Decoded name of bpf map type. +.RE +.sp +BPF\-MAP.TYPE.RAW <\f(CRnumber\fP> +.RS 4 +Bpf map type (raw). +.RE +.sp +BPF.NAME <\f(CRstring\fP> +.RS 4 +Bpf object name. +.RE +.sp +BPF\-PROG.ID <\f(CRnumber\fP> +.RS 4 +Bpf program ID. +.RE +.sp +BPF\-PROG.TYPE <\f(CRstring\fP> +.RS 4 +Decoded name of bpf program type. +.RE +.sp +BPF\-PROG.TYPE.RAW <\f(CRnumber\fP> +.RS 4 +Bpf program type (raw). +.RE +.sp CHRDRV <\f(CRstring\fP> .RS 4 Character device driver name resolved by \f(CR/proc/devices\fP. @@ -205,10 +245,15 @@ Device type (\f(CRblk\fP, \f(CRchar\fP, or \f(CRnodev\fP). ENDPOINT <\f(CRstring\fP> .RS 4 IPC endpoints information communicated with the fd. +.sp +\fBlsfd\fP collects endpoints within the processes that +\fBlsfd\fP scans; \fBlsfd\fP may miss some endpoints +if you limits the processes with \fB\-p\fP option. +.sp The format of the column depends on the object associated with the fd: .sp -FIFO type +FIFO type, mqueue type, ptmx and pts sources .RS 4 \fIPID\fP,\fICOMMAND\fP,\fIASSOC\fP[\-r][\-w] .sp @@ -216,9 +261,28 @@ The last characters ([\-r][\-w]) represents the read and/or write mode of the endpoint. .RE .sp -\fBlsfd\fP collects endpoints within the processes that -\fBlsfd\fP scans; \fBlsfd\fP may miss some endpoints -if you limits the processes with \fB\-p\fP option. +eventfd type +.RS 4 +\fIPID\fP,\fICOMMAND\fP,\fIASSOC\fP +.RE +.sp +UNIX\-STREAM +.RS 4 +\fIPID\fP,\fICOMMAND\fP,\fIASSOC\fP[\-r?][\-w?] +.sp +About the last characters ([\-r?][\-w?]), see the description +of \fISOCK.SHUTDOWN\fP. +.RE +.RE +.sp +EVENTFD.ID <\f(CRnumber\fP> +.RS 4 +Eventfd ID. +.RE +.sp +EVENTPOLL.TFDS <\f(CRstring\fP> +.RS 4 +File descriptors targeted by the eventpoll file. .RE .sp FD <\f(CRnumber\fP> @@ -261,6 +325,19 @@ INODE <\f(CRnumber\fP> Inode number. .RE .sp +INOTIFY.INODES <\f(CRstring\fP> +.RS 4 +Cooked version of INOTIFY.INODES.RAW. +The format of the element is +\fIinode\-number\fP,\fIsource\-of\-inode\fP. +.RE +.sp +INOTIFY.INODES.RAW <\f(CRstring\fP> +.RS 4 +List of monitoring inodes. The format of the element +is \fIinode\-number\fP\f(CR,\fP\fIdevice\-major\fP\f(CR:\fP\fIdevice\-minor\fP. +.RE +.sp KNAME <\f(CRstring\fP> .RS 4 Raw file name extracted from @@ -303,6 +380,36 @@ Cooked version of KNAME. It is mostly same as KNAME. .sp Some files have special formats and information sources: .sp +bpf\-map +.RS 4 +id=\fIBPF\-MAP.ID\fP type=\fIBPF\-MAP.TYPE\fP[ name=\fIBPF.NAME\fP] +.RE +.sp +bpf\-prog +.RS 4 +id=\fIBPF\-PROG.ID\fP type=\fIBPF\-PROG.TYPE\fP[ name=\fIBPF.NAME\fP] +.RE +.sp +eventpoll +.RS 4 +tfds=\fIEVENTPOLL.TFDS\fP +.RE +.sp +eventfd +.RS 4 +id=\fIEVENTFD.ID\fP +.RE +.sp +inotify +.RS 4 +inodes=\fIINOTIFY.INODES\fP +.RE +.sp +misc:tun +.RS 4 +iface=\fITUN.IFACE\fP +.RE +.sp NETLINK .RS 4 protocol=\fINETLINK.PROTOCOL\fP[ lport=\fINETLINK.LPORT\fP[ group=\fINETLINK.GROUPS\fP]] @@ -331,6 +438,14 @@ PINGv6 state=\fISOCK.STATE\fP[ id=\fIPING.ID\fP][ laddr=\fIINET6.LADDR\fP [ raddr=\fIINET6.RADDR\fP]] .RE .sp +ptmx +.RS 4 +tty\-index=\fIPTMX.TTY\-INDEX\fP +.sp +\fBlsfd\fP extracts \fIPTMX.TTY\-INDEX\fP from +\f(CR/proc/\fP\fIpid\fP\f(CR/fdinfo/\fP\fIfd\fP. +.RE +.sp RAW .RS 4 state=\fISOCK.STATE\fP[ protocol=\fIRAW.PROTOCOL\fP [ laddr=\fIINET.LADDR\fP [ raddr=\fIINET.RADDR\fP]]] @@ -341,11 +456,21 @@ RAWv6 state=\fISOCK.STATE\fP[ protocol=\fIRAW.PROTOCOL\fP [ laddr=\fIINET6.LADDR\fP [ raddr=\fIINET6.RADDR\fP]]] .RE .sp +signalfd +.RS 4 +mask=\fISIGNALFD.MASK\fP +.RE +.sp TCP, TCPv6 .RS 4 state=\fISOCK.STATE\fP[ laddr=\fITCP.LADDR\fP [ raddr=\fITCP.RADDR\fP]] .RE .sp +timerfd +.RS 4 +clockid=\fITIMERFD.CLOCKID\fP[ remaining=\fITIMERFD.REMAINING\fP [ interval=\fITIMERFD.INTERVAL\fP]] +.RE +.sp UDP, UDPv6 .RS 4 state=\fISOCK.STATE\fP[ laddr=\fIUDP.LADDR\fP [ raddr=\fIUDP.RADDR\fP]] @@ -368,18 +493,27 @@ UNIX state=\fISOCK.STATE\fP[ path=\fIUNIX.PATH\fP] type=\fISOCK.TYPE\fP .RE .RE +.RS 3 +.ll -.6i .sp -NETLINK.GROUPS <\f(CRnumber\fP>> +Note that \f(CR(deleted)\fP markers are removed from this column. +Refer to \fIKNAME\fP, \fIDELETED\fP, or \fIXMODE\fP to know the +readability of the file from the file system. +.br +.RE +.ll +.sp +NETLINK.GROUPS <\f(CRnumber\fP> .RS 4 Netlink multicast groups. .RE .sp -NETLINK.LPORT <\f(CRnumber\fP>> +NETLINK.LPORT <\f(CRnumber\fP> .RS 4 Netlink local port id. .RE .sp -NETLINK.PROTOCOL <\f(CRstring\fP>> +NETLINK.PROTOCOL <\f(CRstring\fP> .RS 4 Netlink protocol. .RE @@ -477,6 +611,11 @@ RDEV <\f(CRstring\fP> Device ID (if special file). .RE .sp +SIGNALFD.MASK <\f(CRstring\fP> +.RS 4 +Masked signals. +.RE +.sp SIZE <\f(CRnumber\fP> .RS 4 File size. @@ -497,6 +636,25 @@ SOCK.PROTONAME <\f(CRstring\fP> Protocol name. .RE .sp +SOCK.SHUTDOWN <\f(CRstring\fP> +.RS 4 +Shutdown state of socket. +.sp +[\-r?] +.RS 4 +If the first character is \fIr\fP, the receptions are allowed. +If it is \fI\-\fP, the receptions are disallowed. +If it is \fI?\fP, the state is unknown. +.RE +.sp +[\-w?] +.RS 4 +If the second character is \fIw\fP, the transmissions are allowed. +If it is \fI\-\fP, the transmissions are disallowed. +If it is \fI?\fP, the state is unknown. +.RE +.RE +.sp SOCK.STATE <\f(CRstring\fP> .RS 4 State of socket. @@ -597,20 +755,20 @@ Raw file types returned from \fBstat\fP(2): BLK, CHR, DIR, FIFO, LINK, REG, SOCK .sp TCP.LADDR <\f(CRstring\fP> .RS 4 -Local L3 (INET.LADDR or INET6.LADDR) address and local TCP port. +Local L3 (\fIINET.LADDR\fP or \fIINET6.LADDR\fP) address and local TCP port. .RE .sp -TCP.LPORT <\f(CRinteger\fP> +TCP.LPORT <\f(CRnumber\fP> .RS 4 Local TCP port. .RE .sp TCP.RADDR <\f(CRstring\fP> .RS 4 -Remote L3 (INET.RADDR or INET6.RADDR) address and remote TCP port. +Remote L3 (\fIINET.RADDR\fP or \fIINET6.RADDR\fP) address and remote TCP port. .RE .sp -TCP.RPORT <\f(CRinteger\fP> +TCP.RPORT <\f(CRnumber\fP> .RS 4 Remote TCP port. .RE @@ -620,11 +778,36 @@ TID <\f(CRnumber\fP> Thread ID of the process opening the file. .RE .sp +TIMERFD.CLOCKID <\f(CRstring\fP> +.RS 4 +Clockid. +.RE +.sp +TIMERFD.INTERVAL <\f(CRnumber\fP> +.RS 4 +Interval. +.RE +.sp +TIMERFD.REMAINING <\f(CRnumber\fP> +.RS 4 +Remaining time. +.RE +.sp +PTMX.TTY\-INDEX <\f(CRnumber\fP> +.RS 4 +TTY index of the counterpart. +.RE +.sp +TUN.IFACE <\f(CRstring\fP> +.RS 4 +Network interface behind the tun device. +.RE +.sp TYPE <\f(CRstring\fP> .RS 4 -Cooked version of STTYPE. It is same as STTYPE with exceptions. -For SOCK, print the value for SOCK.PROTONAME. -For UNKN, print the value for AINODECLASS if SOURCE is anon_inodefs. +Cooked version of \fISTTYPE\fP. It is same as \fISTTYPE\fP with exceptions. +For \fISOCK\fP, print the value for \fISOCK.PROTONAME\fP. +For \fIUNKN\fP, print the value for \fIAINODECLASS\fP if \fISOURCE\fP is \f(CRanon_inodefs\fP. .RE .sp UDP.LADDR <\f(CRstring\fP> @@ -632,7 +815,7 @@ UDP.LADDR <\f(CRstring\fP> Local IP address and local UDP port. .RE .sp -UDP.LPORT <\f(CRinteger\fP> +UDP.LPORT <\f(CRnumber\fP> .RS 4 Local UDP port. .RE @@ -642,7 +825,7 @@ UDP.RADDR <\f(CRstring\fP> Remote IP address and remote UDP port. .RE .sp -UDP.RPORT <\f(CRinteger\fP> +UDP.RPORT <\f(CRnumber\fP> .RS 4 Remote UDP port. .RE @@ -652,7 +835,7 @@ UDPLITE.LADDR <\f(CRstring\fP> Local IP address and local UDPLite port. .RE .sp -UDPLITE.LPORT <\f(CRinteger\fP> +UDPLITE.LPORT <\f(CRnumber\fP> .RS 4 Local UDP port. .RE @@ -662,7 +845,7 @@ UDPLITE.RADDR <\f(CRstring\fP> Remote IP address and remote UDPLite port. .RE .sp -UDPLITE.RPORT <\f(CRinteger\fP> +UDPLITE.RPORT <\f(CRnumber\fP> .RS 4 Remote UDP port. .RE @@ -681,158 +864,50 @@ USER <\f(CRstring\fP> .RS 4 User of the process. .RE -.SH "FILTER EXPRESSION" -.sp -\fBlsfd\fP evaluates the expression passed to \fB\-\-filter\fP option every time -before printing a file line. \fBlsfd\fP prints the line only if the result -of evaluation is \f(CRtrue\fP. -.sp -An expression consists of column names, literals and, operators like: -\f(CRDELETED\fP, \f(CR(PID == 1)\fP, \f(CR(NAME == "/etc/passwd")\fP, \f(CR(PID == 1) && DELETED\fP. -\f(CRDELETED\fP, \f(CRPID\fP, and \f(CRNAME\fP are column names in the example. -\f(CR1\fP and "/etc/passwd" are literals. -\f(CR==\fP and \f(CR&&\fP are operators. -.sp -Before evaluation, \fBlsfd\fP substitutes column names in the given -expression with actual column values in the line. There are three -different data types: \f(CRboolean\fP, \f(CRstring\fP, and \f(CRnumber\fP. For columns -with a \f(CRboolean\fP type, the value can be stand\-alone. For \f(CRstring\fP and -\f(CRnumber\fP values, the value must be an operand of an operator, for -example, \f(CR(PID == 1)\fP. See \fBOUTPUT COLUMNS\fP about the types of -columns. -.sp -Literal is for representing a value directly. See BOOLLIT, STRLIT, and -NUMLIT. Different data types have different literal syntax. -.sp -An operator works with one or two operand(s). An operator has an -expectation about the data type(s) of its operands. Giving an -unexpected data type to an operator causes a syntax error. -.sp -Operators taking two operands are \f(CRand\fP, \f(CRor\fP, \f(CReq\fP, \f(CRne\fP, \f(CRle\fP, \f(CRlt\fP, \f(CRge\fP, \f(CRgt\fP, \f(CR=~\fP, \f(CR!~\fP. -Alphabetically named operators have C\-language -flavored aliases: \f(CR&&\fP, \f(CR||\fP, \f(CR==\fP, \f(CR!=\fP, \f(CR<\fP, \f(CR\(lA\fP, \f(CR>=\fP, and \f(CR>\fP. -.sp -\f(CR!\fP is the only operator that takes one operand. -.sp -\f(CReq\fP, \f(CRne\fP, and their aliases expect operands have the same data type. -Applying these operators return a \f(CRboolean\fP. -.sp -\f(CRand\fP, \f(CRor\fP, \f(CRnot\fP and their aliases expect operands have \f(CRboolean\fP data -type. Applying these operators return a \f(CRboolean\fP. -.sp -\f(CRlt\fP, \f(CRle\fP, \f(CRgt\fP, \f(CRge\fP, and their aliases expect operands have -\f(CRnumber\fP data types. Applying these operators return a \f(CRboolean\fP. .sp -\f(CR=~\fP is for regular expression matching; if a string at the right side -matches a regular expression at the left side, the result is true. -The right side operand must be a string literal. See STRLIT about the -syntax. -.sp -\f(CR!~\fP is a short\-hand version of \f(CRnot (STR =~ PAT)\fP; it inverts the -result of \f(CR=~\fP. -.SS "Limitations" -.sp -The current implementation does not define precedences within -operators. Use \f(CR(\fP and \f(CR)\fP explicitly for grouping the -sub\-expressions if your expression uses more than two operators. -.sp -About \f(CRnumber\fP typed values, the filter engine supports only -non\-negative integers. -.SS "Semi\-formal syntax" -.sp -EXPR -.RS 4 -BOOLEXP -.RE -.sp -BOOLEXP0 -.RS 4 -COLUMN <\f(CRboolean\fP> | BOOLLIT | \fI(\fP BOOLEXP \fI)\fP -.RE -.sp -BOOLEXP -.RS 4 -BOOLEXP0 | BOOLOP1 | BOOLOP2 | BOOLOP2BL | BOOLOP2CMP | BOOLOP2REG -.RE -.sp -COLUMN -.RS 4 -[_A\-Za\-z][\-_:A\-Za\-z0\-9]* -.RE -.sp -BOOLOP1 -.RS 4 -\fI!\fP BOOLEXP0 | \fInot\fP BOOLEXP0 -.RE -.sp -STREXP -.RS 4 -COLUMN <\f(CRstring\fP> | STRLIT -.RE -.sp -NUMEXP -.RS 4 -COLUMN <\f(CRnumber\fP> | NUMLIT -.RE -.sp -BOOLLIT -.RS 4 -\fItrue\fP | \fIfalse\fP -.RE -.sp -CHARS -.RS 4 -( [^\(rs] | \fI\(rs\(rs\fP | \fI\(rs\*(Aq\fP | \fI\(rs"\fP )* -.RE -.sp -STRLIT -.RS 4 -\fI\*(Aq\fP CHARS \fI\*(Aq\fP | \fI"\fP CHARS \fI"\fP -.RE -.sp -NUMLIT -.RS 4 -[1\-9][0\-9]* | \fI0\fP -.RE -.sp -BOOLOP2 +XMODE <\f(CRstring\fP> .RS 4 -STREXP OP2 STREXP | NUMEXP OP2 NUMEXP | BOOLEXP0 OP2 BOOLEXP0 -.RE +Extended version of \fIMODE\fP. This column may grow; new letters may be +appended to \fIXMODE\fP when \fBlsfd\fP supports a new state of file descriptors +and/or memory mappings. .sp -OP2 +[\-r] .RS 4 -\fI==\fP | \fIeq\fP | \fI!=\fP | \fIne\fP +opened of mapped for reading. This is also in \fIMODE\fP. .RE .sp -BOOLOP2BL +[\-w] .RS 4 -BOOLEXP0 OP2BL BOOLEXP0 +opened of mapped for writing. This is also in \fIMODE\fP. .RE .sp -OP2BL +[\-x] .RS 4 -\fI&&\fP | \fIand\fP | \fI||\fP | \fIor\fP +mapped for executing the code. This is also in \fIMODE\fP. .RE .sp -BOOLOP2CMP +[\-D] .RS 4 -NUMEXP OP2CMP NUMEXP +deleted from the file system. See also \fIDELETED\fP. .RE .sp -OP2CMP +[\-Ll] .RS 4 -\fI<\fP | \fIlt\fP | \fI<=\fP | \fIle\fP | \fI>\fP | \fIgt\fP | \fI>=\fP | \fIge\fP +locked or leased. \fIl\fP represents a read, a shared lock or a read lease. +\fIL\fP 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, \fIL\fP is used as the flag. .RE .sp -BOOLOP2REG +[\-m] .RS 4 -STREXP OP2REG STRLIT +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, \fBlsfd\fP may fail to mark \fIm\fP +on the file descriptors monitored by the invocation. +See \fBrestart_syscall\fP(2). .RE -.sp -OP2REG -.RS 4 -\fI=~\fP | \fI!~\fP .RE .SH "FILTER EXAMPLES" .sp @@ -1032,14 +1107,14 @@ List files opened in a QEMU virtual machine: .fi .if n .RE .sp -Hide files associated to kernel threads: +List timerfd files expired within 0.5 seconds: .RS 4 .RE .sp .if n .RS 4 .nf .fam C -# lsfd \-Q \*(Aq!KTHREAD\*(Aq +# lsfd \-Q \*(Aq(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)\*(Aq .fam .fi .if n .RE @@ -1095,10 +1170,15 @@ The \fBlsfd\fP command is part of the util\-linux package since v2.38. .MTO "kzak\(atredhat.com" "Karel Zak" "" .SH "SEE ALSO" .sp +\fBbpftool\fP(8) +\fBbps\fP(8) +\fBlslocks\fP(8) \fBlsof\fP(8) \fBpidof\fP(1) \fBproc\fP(5) +\fBscols\-filter\fP(5) \fBsocket\fP(2) +\fBss\fP(8) \fBstat\fP(2) .SH "REPORTING BUGS" .sp -- cgit v1.2.3