如何删除已分配给端口的当前进程/应用程序?

例如:localhost:8080


当前回答

第一步(与KavinduWije所写的接受答案相同):

netstat -ano | findstr:yourPortNumber

第2步更改为:

tskill typeyourPIDhere 

注意:taskkill在某些git bash终端中不起作用

其他回答

步骤1:

打开cmd.exe(注意:您可能需要以管理员身份运行它,但这并不总是必要的),然后运行以下命令:

网络统计 -什么 |查找 :<PORT>

(将<PORT>替换为您想要的端口号,但保留冒号)

红色圈出的区域显示PID(进程标识符)。找到正在使用所需端口的进程的PID。

步骤2:

接下来,执行如下命令:

taskkill /PID <PID> /F

(这次没有冒号)

最后,您可以重新执行“步骤1”中的命令来检查操作是否成功。如果它是成功的,你不应该看到任何更多的搜索结果的端口号。

如果你使用powershell 7+,这对我有用。只需在$PROFILE文件中添加此函数。

function killport([parameter(mandatory)] [string] $uport){
    if($upid = (Get-NetTCPConnection -LocalPort $uport -ErrorAction Ignore).OwningProcess){kill $upid}
}

然后简单地使用killport 8080

或者如果你只喜欢命令,你可以试试这个:

kill $(Get-NetTCPConnection -LocalPort 8761 -ErrorAction Ignore).OwningProcess

对于Windows用户,您可以使用CurrPorts工具轻松地杀死正在使用的端口:

简单的CMD工作我。容易记住

找到你想杀死的端口号并运行下面的CMD

npx kill-port 8080

完成端口后停止并得到此消息

npx: installed 3 in 13.796s
Process on port 8080 killed

你可以运行一个bat文件:

@ECHO OFF                                                                              
FOR /F "tokens=5" %%T IN ('netstat -a -n -o ^| findstr "9797" ') DO (
SET /A ProcessId=%%T) &GOTO SkipLine                                                   
:SkipLine                                                                              
echo ProcessId to kill = %ProcessId%
taskkill /f /pid %ProcessId%
PAUSE