我有一个正在运行的rabbitmq管理进程,它打开一个端口15672
,
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 5431/beam
正如您所看到的,该过程有一个PID
of 5431
。
如果我转到/proc/5431
并运行,我在该列表中看ls fd
不到端口(抑制输出),15672
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]
有人可以告诉我为什么端口15672
没有列出吗?
答案1
你可以这样找到fd:
pid=5431
find /proc/$pid/fd -lname 'socket:\['$(grep 00000000:3D38/proc/$pid/net/tcp|awk '{print $10}')'\]'
3D38 相当于 15672 的 16 进制