lsof:socket括号内的数字代表什么

Pra*_*P B 5 linux lsof

当我在名称列中运行 lsof 命令时,对于套接字,一些数字出现在括号中,如下所示。这是什么意思?

 command    pid        user      fd                 Name
 process    8197       root      29                 socket:[3050474]
Run Code Online (Sandbox Code Playgroud)

mya*_*aut 5

TL;DR:与该套接字关联的唯一编号


Unix 的定义规则之一是“一切皆文件”。因此,套接字也由非常特殊的文件系统表示,通常称为sockfs

传统文件系统上的文件具有inode 编号——可以识别它们的唯一编号:

$ ls -li /bin/bash 
7864369 -rwxr-xr-x 1 root root 656584 Oct 15  2014 /bin/bash
^^^^^^^
inode-number
Run Code Online (Sandbox Code Playgroud)

同样适用于sockfs,所有套接字也有inode-numbers

对于特殊文件系统,没有实际的文件命名模式,所有文件都具有通用名称fsname:[inode-number](另请参阅:linux+v3.19.1/fs/dcache.c#L2945