有时候会发生程序启动的时候,发现端口被人占用者,但是又不知道是谁在使用。有时可以通过重启机器解决问题,有时重启机器也不能为力。只能通过Unix操作系统本身的能力通过Socket查询是谁在占用者,将这个进程杀死。
检查端口是谁在占用:
有时候会发生程序启动的时候,发现端口被人占用者,但是又不知道是谁在使用。有时可以通过重启机器解决问题,有时重启机器也不能为力。只能通过Unix操作系统本身的能力通过Socket查询是谁在占用者,将这个进程杀死。
网站有一篇不错的文档:http://www.douzhe.com/docs/jh/6/267939.html 详细说明了一下如何解决这个问题:
Linux
在Linux中,基本上是依靠lsof的功能。
lsof将系统中每个文件打开的文件全部列出来(socket也是文件的一种),
或者加入参数i:lsof –i, 将网络连接显示出来,在结果中寻找自己赶兴趣的端口号就可以找到有谁在占用这个端口了。
Solaris8
# cd /proc ; /usr/proc/bin/pfiles * | egrep "^[0-9]|sockname" | more
[2006-03-17]
其实在netstat中,可以通过参数-p得知是哪个process打开的端口,进而找到程序