lf2*_*215 4 unix tcp file-descriptor
当我运行时,lsof我看到许多带有TCP <HOST>:<PORT> -> <IP>:https (CLOSED).
这是一个标记,表明描述符曾经存在,还是打开的文件仍然存在?
假设它不是标记,为什么文件描述符仍然存在?
等待几分钟后,这些CLOSED条目仍显示在输出中。当进程退出时我只会看到它们消失。
lsof 的注释(CLOSED)告诉您 TCP 连接处于关闭状态(已关闭),可能是由于远程端关闭了连接。事实上 lsof 列出文件描述符意味着文件描述符仍然打开,指的是关闭的 TCP 连接。没有涉及的文件仍然存在,只有套接字的本地端。
文件描述符将持续存在,直到进程关闭它为止,这可以通过关闭系统调用发生,或者在进程退出时自动发生。
关闭文件描述符和关闭连接只是切线相关的。当您关闭文件描述符时,如果它是对连接一端的最后一个引用,则该连接将被关闭(如果它尚未关闭 - 要么通过关闭另一端,要么通过使用显式关闭关闭系统调用)