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

例如:localhost:8080


当前回答

如果你使用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

其他回答

有两种方法可以终止进程

选项01 -最简单和最简单 要求:npm@5.2.0^版本 以管理员身份打开命令提示符,并使用端口发出以下命令(这里的端口是8080)

npx kill-port 8080

选项02 -最常用

步骤1 以管理员身份打开Windows命令提示符 一步02 用下面的命令找到你想要杀死的端口的PID

netstat -ano|findstr "PID :8080"

TCP 0.0.0.0:8080 0.0.0.0:0监听18264

一步03 用下面的命令杀死上面收到的PID(在我的例子中PID是18264)

taskkill /PID 18264 /f

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

netstat -ano | findstr:yourPortNumber

第2步更改为:

tskill typeyourPIDhere 

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

我们可以通过简单地重新启动IIS来避免这种情况,使用下面的命令:

IISRESET

我在Windows上运行zookeeper,无法使用zookeeper-stop.sh停止在2181端口运行的zookeeper,所以尝试了这个双斜线“//”方法来kill任务。它工作

     1. netstat -ano | findstr :2181
       TCP    0.0.0.0:2181           0.0.0.0:0              LISTENING       8876
       TCP    [::]:2181              [::]:0                 LISTENING       8876

     2.taskkill //PID 8876 //F
       SUCCESS: The process with PID 8876 has been terminated.

如果你可以在Windows上使用PowerShell,你只需要:

Get-Process -Id (Get-NetTCPConnection -LocalPort "8080").OwningProcess | Stop-Process