Como encontro o inode de um soquete TCP?
Como vincular valores na coluna 'inode' de/proc/net/tcp
para arquivos em/proc/<pid>/fd/
?
Fiquei com a impressão de que oinode
A coluna no TCP tinha uma representação decimal do inode do soquete, mas esse não parece ser o caso.
Por exemplo, se eu corrertelnet localhost 80
, Vejo o seguinte (telnet é pid 9021).
/proc/net/tcp
contém
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
23: 0100007F:CE2A 0100007F:0050 01 00000000:00000000 00:00000000 00000000 1000 0 361556 1 00000000 20 0 0 10 -1
o que me faz pensar que o inode do soquete conectado a 127.0.0.1:80 é 361556. Mas se eu executarls --inode -alh /proc/9021/fd
, Entendo
349886 lrwx------ 1 me me 64 Dec 26 10:51 3 -> socket:[361556]
O inode é 349886, que é diferente do valor na coluna inode da tabela tcp: 361556. Mas o destino do link parece ter o nome correto. Similarmente,stat /proc/9021/3
mostra:
File: ‘/proc/9021/fd/3’ -> ‘socket:[361556]’
Size: 64 Blocks: 0 IO Block: 1024 symbolic link
Device: 3h/3d Inode: 349886 Links: 1
Qual é o número na coluna inode da tabela tcp? Por que não está alinhado com o inode, conforme relatado porls
oustat
?
(Estou executando o Ubuntu 14.10, se isso importa)