在Windows上查找使用端口的进程的PID
我的服务崩溃与经典启动:
java.rmi.server.ExportException: Listen failed on port: 9999
我怎样才能find杀死它的过程?
只要打开一个命令shell并键入:(说你的端口是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
在Windows上查找使用端口的进程的PID (例如端口:“9999”)
netstat -aon | find "9999"
-a
显示所有连接和侦听端口。
-o
显示与每个连接关联的拥有进程ID。
-n
以数字forms显示地址和端口号。
输出:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING 15776
然后通过PID taskkill /F /PID 15776
杀死进程
/F
– 指定强制终止进程(es)。
注意:您可能需要额外的权限(从pipe理员运行)来杀死某些特定的进程
经过一番脚本摆弄之后,我来到了这个行动。 复制并保存在.bat文件中:
FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i
在需要空闲的端口号中更改“查找”3306“'。 然后以pipe理员身份运行该文件。 它会杀死在这个端口上运行的所有进程
如果您想以编程方式执行此操作,则可以在PowerShell脚本中使用以下某些选项:
$processPID = $($(netstat -aon | findstr "9999")[0] -split '\s+')[-1] taskkill /f /pid $processPID
然而; 请注意,您可以更准确地得到您的PID结果。 如果你知道端口应该在哪个主机上,你可以把它缩小很多。 netstat -aon | findstr "0.0.0.0:9999"
netstat -aon | findstr "0.0.0.0:9999"
只会返回一个应用程序,最有可能的是正确的。 只有在端口号上search可能会导致你返回只有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来结束yp,并杀死错误的进程。