2012-10-23 19 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

相關問題