在Linux和其他类UNIX操作系统,它是可能的两个(或多个)进程共享一个互联网插座.假设进程之间没有父子关系,有没有办法告诉最初创建套接字的进程是什么?
澄清:我需要使用/proc
文件系统或类似工具从"外部"确定这一点.我无法修改进程的代码.我已经可以通过阅读告诉哪些进程正在共享套接字/proc/
,但这并不能告诉我最初创建它们的进程.
你可以使用netstat.您应该查看"本地地址"和"PID /程序名称"列.
xxx@xxx:~$ netstat -tulpen (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 127.0.0.1:4005 0.0.0.0:* LISTEN 1000 68449 7559/sbcl tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 0 3938 - tcp6 0 0 :::6000 :::* LISTEN 0 3937 - udp 0 0 0.0.0.0:68 0.0.0.0:* 0 4528 -
不会'帮助'-Ua'吗?