2012-10-23 20 views
0

当我想看到使用ls -l /proc/pid/fd的进程的打开文件列表时,我看到一些套接字描述符。我怎样才能找到各自的文件名?如何找到与套接字描述符关联的文件名?

lr-x------ 1 u1 users 64 Sep 15 14:45 0 -> /dev/null 
lrwx------ 1 u1 users 64 Sep 15 14:45 1 -> /dev/pts/3 
lrwx------ 1 u1 users 64 Sep 15 14:45 10 -> socket:[507942] 
l-wx------ 1 u1 users 64 Sep 15 14:45 2 -> pipe:[505993] 
l-wx------ 1 u1 users 64 Sep 15 14:45 22 -> pipe:[505994] 
l-wx------ 1 u1 users 64 Sep 15 14:45 3 -> /dev/null 
lrwx------ 1 u1 users 64 Sep 15 14:45 4 -> socket:[507938] 
lrwx------ 1 u1 users 64 Sep 15 14:45 5 -> socket:[507939] 
lrwx------ 1 u1 users 64 Sep 15 14:45 6 -> socket:[486323] 
lrwx------ 1 u1 users 64 Sep 15 14:45 7 -> socket:[486324] 
lrwx------ 1 u1 users 64 Sep 15 14:45 8 -> socket:[509999] 
lrwx------ 1 u1 users 64 Sep 15 14:45 9 -> socket:[507941] 

lsof -p pid我也看到套接字。

atIcoFoam 24376 u1 0r CHR    1,3  0t0  1029 /dev/null 
atIcoFoam 24376 u1 1u CHR    136,3  0t0  6 /dev/pts/3 
atIcoFoam 24376 u1 2w FIFO    0,8  0t0 506122 pipe 
atIcoFoam 24376 u1 3w CHR    1,3  0t0  1029 /dev/null 
atIcoFoam 24376 u1 4u unix 0x0000000000000000  0t0 511127 socket 
atIcoFoam 24376 u1 5u unix 0x0000000000000000  0t0 511128 socket 
atIcoFoam 24376 u1 6u IPv4    510153  0t0  TCP *:37340 (LISTEN) 
atIcoFoam 24376 u1 7u IPv6    510154  0t0  TCP *:43305 (LISTEN) 
atIcoFoam 24376 u1 8u IPv4    512654  0t0  TCP hpclab.ws05:57696->hpclab.ws05:33141 (ESTABLISHED) 
atIcoFoam 24376 u1 9u IPv4    508030  0t0  TCP *:1027 (LISTEN) 
atIcoFoam 24376 u1 10u IPv6    508031  0t0  TCP *:1027 (LISTEN) 
+0

套接字并不总是有相应的文件系统名称...... – twalberg

+0

那么我怎样才能找到文件名。没有任何办法吗? – mahmood

+0

如果套接字没有文件名,则无法找到它。 – twalberg

回答

0

您可以通过此列表打开文件:

lsof -p PID 
+0

文章编辑。仍然看到插座 – mahmood

0

这些是UNIX监听套接字?我承认是的,因为如果他们是别的什么,那么你的问题就没有意义了。

lsof -p pid 
+0

张贴编辑。仍然看到插座 – mahmood

+0

你确定这些套接字绑定到名称?你的例子中的文件描述符4和5可能就是用'socketpair()'创建的匿名UNIX套接字的两端...... – Celada

1

只有命名UNIX域名插座(AF_UNIX输入插座)有关联的文件:

lsof的套接字绑定到通常能够解决文件系统的名称。

更新:

这样的文件的名称使用此套接字的文件描述符的过程中的具体值链接到/proc/<process id>/fd/目录。

所有其他套接字在文件系统中都没有表示。

+0

这是个好消息还是坏消息? – mahmood

+0

这只是意味着,您不会在每个套接字'/ proc//fd'列表的文件系统中找到一个条目。 @mahmood – alk

+0

那么我如何跟踪文件名? – mahmood

相关问题