日期:2014-05-16  浏览次数:20617 次

Linux查看端口被哪个进程占用
    今天,玩cassandra需要用到它自带的NodeTool来查看集群的情况,运行之后发现出错,说Error connection to remote JMX agent。之前为了图方便,8080端口被占用,直接把JMX从启动参数中去掉了。
     于是把机器上的jboss、apache给kill掉了。本以为应用可以启动,可是发现8080依旧被占用着。不知道是被哪个进程给占用了,于是上网搜索能够得到是哪个端口占用掉了这个线程。最后找到sudo lsof -i:XXXX,通过这条命令便能够查看到占用该端口的进程了。
     贴一下网上对lsof的介绍:lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (tcp) 和用户数据报协议 (udp) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。