首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

netstat与历程

2012-08-21 
netstat与进程netstat命令可以列出所用的通信通道及其对应的PID,这个关联是怎么实现的呢?[解决办法]当执行

netstat与进程
netstat命令可以列出所用的通信通道及其对应的PID,这个关联是怎么实现的呢?


[解决办法]
当执行netstat -nlp时,该命令首先在proc下遍历所有的PID/fd/目录,当fd目录中有socket句柄时,将其记录,然后再去proc/net/tcp (udp,unix)里查找与这些socket句柄相关的端口,proc/net/tcp里面的数字是16进制的,转换到10进制就是所看到的端口了。

在程序执行时,程序所打开的句柄可以在proc/pid/fd中查看,fd目录是700的,并且目录宿主就是执行该程序的用户,这样就可以通过FD目录的属性来确认程序的>执行用户,也就是参数p显示的所有者。

其实Shell下的很多命令都是读取proc的信息,然后格式化输出,例如pstree,vmstat等。如果你想得到一个特定的系统状态或程序状态,完全可以自己用Shell写一个类似netstat这种命令的脚本。

热点排行