2010-07-23 5 views
14

Estoy tratando de analizar la información del socket desde /proc/net/tcp y aunque puedo identificar algunos campos, como las direcciones de memoria o el uso de la cola de envío, no puedo encontrar cómo cada entrada está vinculada a su descriptor de socket. Por ejemplo, con estos datos:¿Cómo puedo unir cada entrada/proc/net/tcp a cada socket abierto?

1: 5922140A:E459 D5C43B45:0050 01 00000000:00000000 00:00000000 00000000 1000  0 507218 1 f6ab1300 57 3 12 4 -1 

Deseo saber cuál es el descriptor de socket correspondiente.

+0

¿Quiere decir número de descriptor de archivo para el proceso de propiedad, o quiere saber el proceso que posee un socket dado? –

+0

Sí, el descriptor de archivo. –

+0

@MattJoiner - Hola Matt, ¿Cómo saber el proceso que posee un socket dado? – Suman

Respuesta

13

tomar el número de inodo (en este caso, 507.218). Cada descriptor de fichero abierto para que socket (puede haber múltiples descriptores de fichero para el mismo zócalo) aparecerá como un enlace de la forma:

/proc/<PID>/fd/<N> -> socket[507218] 

(donde <PID> es el ID de proceso y <N> es el descriptor de archivo).

+0

¡Genial! ¡Muchas gracias! –

Cuestiones relacionadas