lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gnome-pan 28597 murat 18u IPv4 2907888 0t0 TCP ....
gnome-pan 28597 murat 19u IPv4 2907903 0t0 TCP ....
dropbox 28624 murat 18u IPv4 2755213 0t0 TCP ...
当我使用 -i 开关列出打开的文件时,我发现一些进程具有相同的 fd。例如上面的输出,28597 和 28624 pid 具有相同的 fd。这意味着这些进程可以访问相同的内存空间。这是什么原因造成的?它们如何到达同一区域以及为什么?此外,u(18u)是什么意思?一些 fd 以 w 结尾。
答案1
这意味着这些进程可以到达相同的内存空间。
为什么它们是否想达到共同的记忆空间?答案很简单——互相交谈!
在您的情况下,dropbox
正在与 对话gnome-panel
,它提供了 Dropbox 状态图标。
这库手动的有话要说:
复制文件描述符的主要用途是实现重定向输入或输出:即改变特定文件描述符对应的文件或管道。
该u
标志只是表示FD是可读写的;w
表示只写,r
表示只读。
答案2
文件描述符在每个进程的命名空间中定义。它们对于整个系统来说并不是唯一的。显示的两个进程没有访问同一个文件,这一点可以从列中看出,DEVICE
在本例中,该列可能显示了 TCP 套接字的设备名称。