查找在Windows上使用端口的进程的PID

Tho*_*mas 90 port

启动时我的服务崩溃与经典:

java.rmi.server.ExportException: Listen failed on port: 9999
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到杀死它的过程?

Tho*_*mas 195

只需打开一个命令shell并输入:(说你的端口是123456)

netstat -a -n -o | find "123456"
Run Code Online (Sandbox Code Playgroud)

你会看到你需要的一切

标题是:

 Proto  Local Address          Foreign Address        State           PID
 TCP    0.0.0.0:37             0.0.0.0:0              LISTENING       1111
Run Code Online (Sandbox Code Playgroud)

  • 或者,`nestat -aon | findstr 123456` (9认同)
  • 对于Windows / cygwin,可能是netstat -a -n -o | grep“ 123456” (3认同)
  • 为了获得更精确的结果,请在端口号前面加上冒号:查找“:123456” (2认同)

am0*_*0wa 71

查找在Windows上使用端口的进程的PID (例如端口:"9999")
-a

-o 显示所有连接和侦听端口.

-n 显示与每个连接关联的拥有进程ID.

/F 以数字形式显示地址和端口号.

输出:
-a

然后通过PID杀死进程 -o

-n - 指定强制终止进程.

注意:您可能需要额外的权限(从管理员运行)才能终止某些进程

  • @JaredBeach - 它正在等待反向 DNS 名称解析,因此它最终会在超时完成后完成。如果此问题挂在“内部”IP 上,则表明您的本地 DNS 服务器存在问题。 (2认同)

小智 12

命令:

netstat -aon | findstr 4723
Run Code Online (Sandbox Code Playgroud)

输出:

TCP    0.0.0.0:4723           0.0.0.0:0                LISTENING       10396
Run Code Online (Sandbox Code Playgroud)

现在使用forWindows 中的命令剪切进程 ID“10396” 。

命令:

for /f "tokens=5" %a in ('netstat -aon ^| findstr 4723') do @echo %~nxa
Run Code Online (Sandbox Code Playgroud)

输出:

10396

如果你想削减值的第 4 个数字意味着“听”然后命令在 Windows 中。

命令:

for /f "tokens=4" %a in ('netstat -aon ^| findstr 4723') do @echo %~nxa
Run Code Online (Sandbox Code Playgroud)

输出:

听力


eFo*_*Fox 8

如果您想以编程方式执行此操作,您可以在 PowerShell 脚本中使用提供给您的一些选项,如下所示:

$processPID =  $($(netstat -aon | findstr "9999")[0] -split '\s+')[-1]
taskkill /f /pid $processPID
Run Code Online (Sandbox Code Playgroud)

然而; 请注意,您的 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
Run Code Online (Sandbox Code Playgroud)

最有可能的候选者通常最先结束,但如果该进程在您运行脚本之前已经结束,您可能会以 PID 12331 而结束并杀死错误的进程。


Qui*_*pie 5

在对脚本进行了一些摆弄之后,我来到了这个动作。将其复制并保存在 .bat 文件中:

FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i
Run Code Online (Sandbox Code Playgroud)

在需要空闲的端口号中更改'find "3306"'。然后以管理员身份运行该文件。它将杀死在此端口上运行的所有进程。