lsof
命令功能强大,列出打开的文件包括网络连接。
我认为它应该像其他系统工具一样,从linux系统的/proc/ , /dev/ or /sys
等位置收集信息。
但是当我尝试从这些位置找到打开的文件信息时,我失败了:
ls /proc/self/fd
ls /proc/net/tcp
ls /dev/fd/
所以,我想知道lsof如何获取其信息。
希望你能告诉我这个谜团:)谢谢!
答案 0 :(得分:1)
您可以使用以下命令获取多个信息:
答案 1 :(得分:0)
我发现 this lsof 存储库包含一个移植指南,其中包含以下内容:
<块引用>Lsof 通过读取打开的 UNIX 方言文件获取数据 内核的 proc 结构信息,跟随它到相关的 用户结构,然后读取存储的打开文件结构 (通常)在用户结构中。通常 lsof 使用内核 内存设备,/dev/kmem、/dev/mem等读取内核数据。
该文档提供了大量有关该程序如何工作的信息。