您的位置:首页 > 其它

【windows】查询占用端口的程序——记一次解决webloigc启动失败的过程

2013-11-13 10:53 351 查看
.

.

.

.

.

我们经常使用的网络程序偶尔会遇到端口被占用的情况,但是却苦于无法找到占用端口的程序,这篇文章将教你两个命令,轻松排查端口占用问题。


关键命令:

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.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐