coding
huangwei的gravatar頭像
huangwei2015-05-18 20:04:33

windows和linux下如何查找占用指定端口號的進程

有時啟動tomcat,會啟動失敗,說端口已經被占用,那么到底是哪個程序占用了端口呢? 
如何判斷是哪個進程(程序)占用了指定的端口呢? 
下面我會分兩個平臺(windows,linux)來進行詳細說明

1,windows 系統

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

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

 

例如,查找占用端口8080 的進程 (先打開cmd命令行)
 
說明pid為1532 的進程占用了8080端口

然后,我們打開任務管理器,找到進程, 

那么如何殺死進程呢?

taskkill  /pid 1532  /f

 
注意:"/pid"后面跟的就是pid

2,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端口. 
如果只顯示pid呢?

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

那么在linux中如何殺死進程呢?

kill -9 11116

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


打賞

頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
2008大乐透走势图