linux – 如何在不使用lsof或netstat的情况下将网络连接绑定到PID?

有没有办法将网络连接与PID(进程ID)绑定,而无需分叉到lsof或netstat?

目前lsof正在用于轮询哪些连接属于哪个进程ID.然而,在繁忙的主机上,lsof或netstat可能是相当昂贵的,并且希望避免使用这些工具.

有没有类似于/ proc / $pid的地方可以找到这些信息?我知道网络连接是通过检查/ proc / net,但是无法弄清楚如何将其重新绑定到一个pid.在/ proc / $pid中,似乎没有任何网络信息.

目标主机是Linux 2.4和Solaris 8到10.如果可能,Perl中的解决方案,但愿意做C/C++.

补充笔记:

我想强调,这里的目标是将网络连接与PID绑定.得到一个或另一个是微不足道的,但把这两个人以低成本的方式组合似乎是困难的.感谢您到目前为止的答案!

解决方法

我不知道你需要轮询多长时间,或者你的意思是“昂贵”,但是正确的选项,netstat和lsof比认配置运行得快很多.
例子:
netstat -ltn

显示侦听tcp套接字,并且认情况下省略(慢)名称解析.

lsof -b -n -i4tcp:80

省略所有阻塞操作,名称解析,并将选择限制在端口80上的IPv4 tcp套接字.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...