【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.

 

你可能感兴趣的:(windows)