在开服务(指定端口为8000)的时候遇到如下的报错信息:Error: That port is already in use.
问题:8000端口被占用,该如何释放被占用的端口?
解决方案
part one 先来看下端口使用情况:
1.netstat -anp |grep 端口号 可以查看到端口是否被占用
如下,我以8000为例,netstat -anp |grep 8000(此处备注下,我是以root用户操作,如果是普通用户需要加上了sudo, sudo netstat -anp |grep 8000),如下图1
图一
图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务python占用,查看具体端口号,只要有如图这一行就表示被占用了。(tcp 端口号 listen 这三个)
2.netstat -nultp(此处不用加端口号)
该命令是查看当前所有已经使用的端口情况,如图2:
图二
有上图可以看到 我的8000,111,15458 等等端口被占用了。
3.netstat -anp |grep 82查看82端口的使用情况,如图3:
图三
仔细看这个图!可以看出并没有LISTEN那一行,所以就表示没有被占用。
此处注意!图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,
查看具体端口是否被占用时,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了
part two,准备杀掉占用端口的服务
1.查看端口属于哪个程序?端口被哪个进程占用 lsof -i:8000 看下图4
图四
可以看到 占用8000端口的服务的pid为26275
2.杀掉占用端口的进程 kill -9 26175
杀完再lsof -i:8000 啥也没有 就说明被删掉了
图五
today over!