Linux面试题:端口占用和进程查看
如何查看某个端口是被那个进程占用,以及如何结束进程
(1)使用lsof -i
$lsof-i|grepmysql# TCP:使用的协议(TCP/UDP)docker-pr2410root 4u IPv4505020t0 TCP *:mysql(LISTEN)docker-pr2416root 4u IPv6482270t0 TCP *:mysql(LISTEN)# 进程名 PID 用户 协议 inode 数据量 监听地址:端口(2)使用netstat -tlnp
-t:代表TCP-l:代表listening,监听-n:为了不解析域名 / 服务名,直接显示数字 IP、数字端口,比如不显示 mysql,直接显示 3306,速度更快、更准-p:显示 占用端口的进程名 + PID
$netstat-tlnp|grep3306tcp000.0.0.0:33060.0.0.0:* LISTEN2410/docker-proxy tcp600:::3306 :::* LISTEN2416/docker-proxy(3)使用ss命令
为什么使用ss,因为比较快,网络连接比较多的时候,他直接从内核拿数据。
$ ss-tlnp|grep3306LISTEN0128*:3306 *:* users:(("docker-proxy",pid=2410,fd=4))LISTEN0128[::]:3306[::]:* users:(("docker-proxy",pid=2416,fd=4))(4)结合lsof -f +kill
kill-9$(iso-t-i:8080)