我的服务崩溃使用端口与经典:查找进程的PID在启动的时候在Windows
java.rmi.server.ExportException: Listen failed on port: 9999
我如何才能找到杀死它的过程吗?
我的服务崩溃使用端口与经典:查找进程的PID在启动的时候在Windows
java.rmi.server.ExportException: Listen failed on port: 9999
我如何才能找到杀死它的过程吗?
只需打开一个命令外壳和类型:(说你的端口123456)
netstat -a -n -o | find "123456"
你会看到你需要的一切
的标题是:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
here如何获得唯一的PID,因为它返回整个详细信息 – 2014-06-06 01:27:46
如何获得结果 – Chinya 2015-10-29 11:45:01
以上的唯一PID窗体或'nestat -aon | findstr 123456' – 2016-02-09 14:18:40
查找PID使用Windows上的端口的进程的端口号(例如,端口:“9999”)
netstat -aon | find "9999"
-a
显示所有连接和侦听端口。
-o
显示与每个连接关联的拥有进程ID。
-n
以数字形式显示地址和端口号。
输出:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING 15776
然后,通过PID taskkill /F /PID 15776
/F
杀死过程 - 指定要强行终止该过程(ES)。
注:您可能需要额外的许可(从管理员身份运行)杀死一些特定过程
为什么netstat退出,除非你给它n标志? – 2016-07-01 13:40:30
后,一些与我来到这个动作脚本摆弄。复制并保存它在一个.bat文件:
FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i
变化“找到‘3306’”在需要是自由的端口号。然后以管理员身份运行该文件。如果你想这样做编程,你可以使用一些给你的选项,如PowerShell脚本如下它会杀死这个港口
上运行的所有进程:
$processPID = $($(netstat -aon | findstr "9999")[0] -split '\s+')[-1]
taskkill /f /pid $processPID
然而,请注意,您可以更准确地得到您的PID结果。如果您知道该端口应该位于哪个主机上,则可以将其缩小很多。 netstat -aon | findstr "0.0.0.0:9999"
将只返回一个应用程序,最有可能的是正确的。只有搜索上的端口号可能会导致你回到那个只发生在它9999
过程中,像这样:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING 15776
UDP [fe80::81ad:9999:d955:c4ca%2]:1900 *:* 12331
最有可能的候选者通常结束了,但是,如果这一进程结束前您运行你可以用PID 12331代替脚本并杀死错误的进程。
更复杂的替代解决方案在这里:http://stackoverflow.com/questions/48198/how-can-you-find-out-which-process-is-listening-on-a-port-on-windows – Thomas 2016-05-09 10:03:07