Você pode encontrar o fd desta maneira:
pid=5431
find /proc/$pid/fd -lname 'socket:\['$(grep 00000000:3D38/proc/$pid/net/tcp|awk '{print $10}')'\]'
3D38 é o equivalente na base 16 de 15672
Eu tenho um processo de gerenciamento rabbitmq em execução, que abre uma porta 15672
,
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 5431/beam
Como você pode ver, o processo tem PID
de 5431
.
Se eu for para /proc/5431
e executar ls fd
, não vejo a porta 15672
nessa lista (saída suprimida),
lr-x------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 0 -> /dev/null
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 1 -> socket:[351505]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 12 -> socket:[375420]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 2 -> socket:[351505]
lr-x------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 3 -> /dev/null
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 4 -> anon_inode:[eventpoll]
lr-x------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 5 -> pipe:[351690]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 54 -> socket:[351702]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 55 -> socket:[351704]
l-wx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 6 -> pipe:[351690]
lr-x------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 60 -> pipe:[351726]
l-wx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 63 -> pipe:[351727]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 68 -> socket:[351740]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 69 -> socket:[351743]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 7 -> anon_inode:[timerfd]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 70 -> socket:[351774]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 71 -> socket:[357375]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 72 -> socket:[351818]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 8 -> socket:[351698]
lrwx------ 1 rabbitmq rabbitmq 64 Sep 12 14:59 9 -> socket:[357167]
Alguém pode me dizer por que a porta 15672
não está listada lá?
Tags proc file-descriptors