我思故我在我有我精彩--liangqihui

爱欲追而情已逝,子欲孝而亲不待。人生的困苦又怎能用一个难字囊尽百味
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

unix和Linux下如何查看被占用的端口及应用程序状况

Posted on 2008-10-21 15:04  挥辉  阅读(7464)  评论(0编辑  收藏  举报

有时候会发生程序启动的时候,发现端口被占用者,但是又不知道是谁在使用。有时可以通过重启机器解决问题,有时重启机器也不能为力。只能通过Unix操作系统本身的能力通过Socket查询是谁在占用者,将这个进程杀死。


检查端口是谁在占用


有时候会发生程序启动的时候,发现端口被占用者,但是又不知道是谁在使用。有时可以通过重启机器解决问题,有时重启机器也不能为力。只能通过Unix操作系统本身的能力通过Socket查询是谁在占用者,将这个进程杀死。

网站有一篇不错的文档:http://www.douzhe.com/docs/jh/6/267939.html 详细说明了一下如何解决这个问题:

Linux

Linux中,基本上是依靠lsof的功能。

lsof将系统中每个文件打开的文件全部列出来(socket也是文件的一种),

或者加入参数ilsof –i 将网络连接显示出来,在结果中寻找自己赶兴趣的端口号就可以找到有谁在占用这个端口了。

Solaris8

# cd /proc ; /usr/proc/bin/pfiles * | egrep "^[0-9]|sockname" | more

[2006-03-17]

其实在netstat中,可以通过参数-p得知是哪个process打开的端口,进而找到程序