1. 程式人生 > >殺掉佔用指定埠的程序

殺掉佔用指定埠的程序

有時啟動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