免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2120 | 回复: 0
打印 上一主题 下一主题

[新手入门] 在AIX系统下如何知道在给定端口侦听的进程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-16 17:04 |只看该作者 |倒序浏览

在AIX系统下如何知道在给定端口侦听的进程?

一、前言

   在使用AIX操作系统时,用netstat命令能很容易看到系统内有哪些端口被占用了,哪些端口有进程在侦听。但是,要想知道在给定端口上侦听的进程是什么,恐怕就不那么容易了。IBM AIX 5L上的rmsock命令能输出侦听在网络地址的进程PID。本文详细介绍了用Shell输出在端口侦听的进程信息的实现原理和脚本封装方法。对于急于看到效果的读者可以直接阅读第四小节,先了解该脚本的用法,有兴趣时回过头再阅读第二小节和第三小节,进一步了解实现原理和如何设计脚本。

二、实现原理

   它的实现原理是:用netstat命令查询在给定端口侦听的网络地址,调用rmsock命令显示在网络地址侦听的进程PID,调用ps命令显示活动进程的完整信息。
   它的核心是rmsock命令,rmsock命令是IBM AIX 5L系统自带的命令。该命令的功能是删除网络地址对应的套接字,假如使用套接字的进程已经退出或者被杀死,该套接字将被从系统内删除,网络地址可以重新使用。假如使用套接字的进程仍然存在,该命令会提示套接字被进程使用,并显示进程号PID。
   下面以telnet端口23为例,演示一下手工方式调用命令获得进程PID的过程:
   * 看网络地址
   netstat -Aan | grep *.23
   执行上述命令后,系统输出如下:
   f100060003652398 tcp        0      0  *.23               *.*                LISTEN
   *.23表示在端口23侦听的网络地址,*代表该主机的任意IP地址。
   f100060003652398 是该套接字的(16进制表示的)系统内核地址。
   * 看进程PID
   rmsock f100060003652398 tcpcb
   执行上述命令后,系统输出如下:
   The socket 0x3652008 is being held by proccess 332008 (inetd).
   显然,占用网络地址的进程PID是 332008,进程执行映像是inetd。
   * 看进程的详细信息
   ps -efl | grep 332008
   执行上述命令后,系统输出如下:
   240001 A     root 332008 393220   0  60 20 40214400   448                12月21      -  0:01 /usr/sbin/inetd
   其中第4列是进程PID,最后一列是进程执行映像的完整路径。
   
   至此,进程的完整信息都被暴露出来,我们的目标基本达到了。不过用了三条命令才达到目标,在日常系统管理过程中显得相当繁琐,作者使用Shell脚本把三条命令整合到一起,方便大家使用。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/65250/showart_1998425.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP