有时启动tomcat,会启动失败,说端口已经被占用,那么到底是哪个程序占用了端口呢?
如何判断是哪个进程(程序)占用了指定的端口呢?
下面我会分两个平台(windows,linux)来进行详细说明

  1. windows 系统

通过如下命令查找占用指定端口的pid(进程id)

netstat -ano|findstr <指定的端口号>

例如,查找占用端口8080 的进程
这里写图片描述
说明pid为1532 的进程占用了8080端口

然后,我们打开任务管理器,找到进程,
这里写图片描述

那么如何杀死进程呢?

taskkill  /pid 1532  /f

这里写图片描述
注意:pid后面跟的就是pid

  1. linux

通过如下命令查找占用指定端口的pid(进程id)

netstat -aonp |grep ":80[ ]\+"|awk -F" "   {'print $0'}

这是查询占用80端口的进程
显示进程信息
说明pid为11116 的进程占用了80端口
优化后如下:

netstat -aonp |grep "^[a-z]\+[ ]\+0[ ]\+0[ ]\+[0-9\.]\+:80[ ]\+"|awk -F" "   {'print $0'}

优化版
那我们来验证一下
tomcat占用了80端口
果然是tomcat 占用了80端口.
如果只显示pid呢?

netstat -anp |grep "^[a-z]\+[ ]\+0[ ]\+0[ ]\+[0-9\.]\+:80[ ]\+"|awk -F" "   {'print $7'}|cut -d"/" -f1

只显示pid

那么在linux中如何杀死进程呢?

kill -9 11116

我在ITEye上的技术博客:
http://hw1287789687.iteye.com/

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐