3

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

 command    pid        user      fd                 Name
 process    8197       root      29                 socket:[3050474]
4

1 回答 1

4

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


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

传统文件系统上的文件具有inode-numbers - 允许识别它们的唯一编号:

$ ls -li /bin/bash 
7864369 -rwxr-xr-x 1 root root 656584 Oct 15  2014 /bin/bash
^^^^^^^
inode-number

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

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

于 2015-04-16T22:57:08.110 回答