linux 查看端口占用情况并关闭进程
首先要搞清楚 linux 查看进程和查看端口是两个概念,一般来讲进程会有多个,而固定端口只会有一个。
1、查看进程 ,通常在使用 ps 命令后 用管道连接(ps -ef|grep xxx ) 查询特定进程
显示当前用户,进程号,进程名等信息
使用 kill + pid即可关闭进程
需要注意的是:一些初学者在该命令后添加端口号进行查询,查到的不是改端口所在进程,而是grep 进程,而grep进程的pid是时时都在变化的,如果使用关闭命令强制关闭
将会退出服务终端....
2、查看端口号被占用情况 lsof -i 命令
刚说到ps +管道查询端口是无效的,正确的是需要使用 lsof命令 加 -i 再加端口号(lsof -i:8080 )
常见参数
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
再使用kill + pid 命令关闭进程即可
3、查看端口号被占用情况 netstat 命令
netstat 命令是Linux用于显示各种网络相关信息,是一个监控TCP/IP网络的非常有用的工具,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
常见参数
-a或--all:显示所有选项,默认不显示LISTEN相关
-t或--tcp:仅显示tcp相关选项
-u或--udp:仅显示udp相关选项
-n或--numeric:直接使用ip地址,而不通过域名服务器(拒绝显示别名,能显示数字的全部转化成数字)
-l或--listening:仅列出有在 Listen (监听) 的服務状态
-p或--programs:显示建立相关链接的程序名
-r或--route:显示路由信息,路由表
-e或--extend:显示扩展信息,例如uid等
-s或--statistice:显示网络工作信息统计表(按各个协议进行统计)
-c或--continuous:每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到