【windows】查詢占用端口的程序——記一次解決webloigc啟動失敗的過程


.

.

.

.

.

我們經常使用的網絡程序偶爾會遇到端口被占用的情況,但是卻苦於無法找到占用端口的程序,這篇文章將教你兩個命令,輕松排查端口占用問題。

關鍵命令:

1.查詢端口占用:netstat -ano | findstr "7001"

2.查詢占用端口的進程:tasklist /fi "pid eq 2072"

3.[贈送]干掉占用的進程:taskkill /im avp.exe /f

下面開始進入正題,扯一扯事件的始末。急於解決問題的朋友就不必往下看了,上面三條命令足矣解決燃眉之急。

有一天早晨,用小學生寫作文的話說就是風和日麗晴空萬里,我來到辦公室啟動各種開發環境准備開始苦逼的一天。

Weblogic 啟動到80%左右就一直停在那里,控制台最后一行已經輸出了:

<2013-11-13 上午10時26分53秒 CST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode> 

正常來說即使 Eclipse Progress 進度條顯示不到100%也可以使用瀏覽器訪問了,可是誰知用瀏覽器一訪問,返回:

Internet Explorer cannot display the webpage

隱隱的有種不詳的預感,但是也沒做太多的懷疑,畢竟進度條還沒走完。

等啊等,等啊等。。。啟動進度一直停留在百分之80幾,等了10分鍾,Eclipse 終於報了一個錯誤,似乎是說Weblogic啟動超時。

再啟動還是同樣的問題。。

排查了半天,想了各種辦法,依然找不出原因來。

無奈只好仔細看控制台上輸出的日志,忽然一行log赫然映入眼簾:

<2013-11-13 上午10時26分53秒 CST> <Error> <Server> <BEA-002606> <Unable to create a server socket for listening on channel "Default[6]". The address 127.0.0.1 might be incorrect or another process is using port 7001: java.net.BindException: Address already in use: JVM_Bind.> 

哈哈,踏破鐵鞋無覓處,原來錯誤消息就在眼前。。很明顯它說7001端口被占用了。

於是就該拿出上面的命令來解決問題了!

趕緊啟動CMD:

C:\Users\yuhuashi>netstat -ano | findstr "7001"
TCP 127.0.0.1:7001 127.0.0.1:7001 ESTABLISHED 2072

7001端口被PID為2072的進程給占用了,趕緊看看2072是何方神聖:

C:\Users\yuhuashi>tasklist /fi "pid eq 2072"

Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
avp.exe 2072 Services 0 93,628 K

哈,被我抓到了。。是avp.exe,即卡巴斯基。

呃,排查到此就結束了,元凶也被抓到了,只是要不要對它 kill 呢?那就要看各位看官的實際情況適當解決了。

不過這里說一下這個附贈的 taskkill 命令。

這個命令可以將某個進程結束掉,這里我用我那個啟動失敗的 Weblogic 給大家做個示范:

C:\Users\yuhuashi>taskkill /im java.exe /f
SUCCESS: The process "java.exe" with PID 4772 has been terminated.

成功結束了 java.exe 進程。

im 參數表示要結束的進程名稱,當然也可以使用 pid,改成 /pid 參數即可。

如果你輸入了一個不存在的進程名稱或者PID,那么執行結果如下:

C:\Users\yuhuashi>taskkill /im java.exe /f
ERROR: The process "java.exe" not found.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM