Я запустил:
# lsof | grep 10900
И его вывод:
MyExecutab 103497 myuser 7u IPv4 985833 0t0 UDP my.example.com:10900
MyExecutab 103497 103498 myuser 7u IPv4 985833 0t0 UDP my.example.com:10900
MyExecutab 103497 103499 myuser 7u IPv4 985833 0t0 UDP my.example.com:10900
MyExecutab 103497 103500 myuser 7u IPv4 985833 0t0 UDP my.example.com:10900
MyExecutab 103497 103501 myuser 7u IPv4 985833 0t0 UDP my.example.com:10900
MyExecutab 103497 103502 myuser 7u IPv4 985833 0t0 UDP my.example.com:10900
MyExecutab 103497 103503 myuser 7u IPv4 985833 0t0 UDP my.example.com:10900
Я пытаюсь выяснить, какой поток читает с UDP-порта 10900.
Похоже, что с этого порта читают 7 потоков, правда?
Мне кажется, что на самом деле читает только один поток, но я просто перечислил все дочерние потоки (внутри одного процесса) и родительский поток.
netstat -plun
показывает, что только родительский поток (PID) прослушивает этот порт:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 10.7.168.173:10900 0.0.0.0:* 103497/MyExecutable
Я также проверил /proc/[pid]/fd
.Поскольку только 103497 является PID, остальные являются TID, поэтому /proc/
имеет только 103497, но не все остальные.
Так есть ли способ выяснить, какой поток слушает определенный порт UDP?
Я нахожусь на CentOS 7 (ядро 3.10).
Спасибо!