-
1 # 科技猿說
-
2 # IT大叔Cc
想要快速關閉埠,大概思路是,先找到這個埠關聯的程序PID,然後透過殺死該程序,來關閉埠號。這裡包含windows系統和Linux系統,使用的操作方法類似,windows系統需要使用到BAT指令碼來完成,linux系統只需要一條命令就可完成,下面來看一下執行過程。
linux系統首先使用netstat命令查詢埠比如9007埠,然後透過killall -9 強制殺死程序,如下:
[root@api linux]# netstat -anp|grep 9007
[root@api linux]# killall -9 httpd
或者
[root@api linux]# killall -9 12829
當然,也可以透過一條命令直接殺死程序,如下:
[root@api linux]# netstat -anp|grep :9007|awk -F/ "{print $2}"|xargs killall -9 ##首先過濾9007埠繫結的資訊,透過awk過濾出程序PID或者程序名稱,如httpd,最後透過xargs命令將過濾出來的字元作為引數傳遞給killall命令,將程序殺死。windows系統windows系統同樣也是使用netstat命令查詢埠的PID,只不過引數略有不同,最後taskkill 命令殺死程序,如下:
C:\Users\1>netstat -ano|findstr 9007C:\Users\1>taskkill /pid 4024 /t /f如果要快速關閉的話,就需要建立BAT指令碼檔案,透過定義變數來殺死埠關聯的程序,內容如下。
set port=9007
for /f "tokens=5 " %%a in ("netstat -ano^|findstr %port%") do (
echo %%a
taskkill /pid %%a /t /f
tasklist |findstr %%a
)
pause
##set定義port變數,透過for語句的tokens引數提取字串,這提取的是第五列,也就是程序PID,最後透過taskkill /pid <pid_nub> /t /f強制命令殺死程序和程序包含的子程序。
我們來看一下執行結果,首先透過netstat和findstr命令配合過濾出埠號對應的程序資訊,然後使用for語句將資訊複製給變數%%a,最後使用taskkill殺死程序PID,如下:
總結,linux系統使用命令直接殺死程序相比windows比較簡單,windows的dos指令略有複雜。
回覆列表
如果是java開發的話,
1.直接關閉tomcat
2.如果還是埠衝突,可以關閉exlipse專案
3.如果還沒成功,可以用cmd 指令
4.雙擊開啟
5.管理員身份執行
6.輸入指令:netstat -ano
7.檢視埠pid
8.任務管理--找相同PID