如何在windows中使用localhost上的端口杀死当前进程?

Kav*_*ije 363 windows port cmd localhost command-prompt

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

例如: localhost:8080

Kav*_*ije 816

步骤1

以管理员身份运行命令行.然后运行下面提到的命令.在yourPortNumber中键入您的端口号

netstat -ano | findstr:yourPortNumber

红色圆圈区域显示PID(进程标识符)

第2步

然后在识别PID后执行此命令.

taskkill/PID typeyourPIDhere/F.

PS再次运行第一个命令以检查进程是否仍然可用.如果进程成功结束,您将获得空行.

  • 运行taskkill时我必须输入转义字符:`taskkill // PID 12552 // F` (14认同)
  • 工作完美.就我而言,Tomcat在8080端口运行,我需要再次启动我的Spring应用程序.http://i.imgur.com/aVwSYvR.png非常感谢你. (12认同)
  • 2020-04-03,Windows10,Python 3.6.6,使用 Git Bash:确认使用双正斜杠也对我有用。我需要终止 `localhost:5000` 上未终止的 Flask 应用程序进程。例如 `taskkill //F //PID 16660` 。 (3认同)
  • 我在端口 80 上得到 processId 0。如果我尝试终止它,我会收到“错误:无法终止 PID 0 的进程。原因:这是关键系统进程。Taskkill 无法结束此进程。” (2认同)

Sah*_*hee 129

我知道这是一个很老的问题,但发现很容易记住,快速命令可以杀死使用端口的应用程序。

要求:npm@5.2.0^ 版本

npx kill-port 8080
Run Code Online (Sandbox Code Playgroud)

您还可以在此处阅读有关 kill-port 的更多信息:https : //www.npmjs.com/package/kill-port

  • 我不敢相信我从来没有向下滚动看到这个...当我忘记 bash 命令时我已经多次来到这个页面...这更容易记住 (9认同)
  • 我不敢相信我不知道这一点,非常有用,谢谢! (4认同)
  • 非常爱你 rn (3认同)
  • 这是一个很好的解决方案谢谢 (2认同)

afs*_*182 97

第1步(同样是由KavinduWije撰写的接受答案):

netstat -ano | findstr :yourPortNumber
Run Code Online (Sandbox Code Playgroud)

将步骤2更改为:

tskill typeyourPIDhere 
Run Code Online (Sandbox Code Playgroud)

这从而taskkill不适用于某些git bash命令

  • 这是对我有用的解决方案。我正在使用 GIT Bash。 (3认同)

Luk*_*gan 91

最简单的解决方案 \xe2\x80\x94 我记得的唯一一个:

\n

在 Windows Powershell 中

\n

假设我们要停止端口8080上的进程

\n
    \n
  1. 获取流程:
  2. \n
\n
netstat -ano | findstr :8080\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 停止进程
  2. \n
\n
stop-process 82932\n
Run Code Online (Sandbox Code Playgroud)\n


Nir*_*ake 84

有两种方法可以杀死进程

选项 01 - 最简单和最简单的

要求:npm@5.2.0^ 版本

以管理员身份打开命令提示符并提供以下带有端口的命令(这里的端口是 8080)

npx kill-port 8080
Run Code Online (Sandbox Code Playgroud)

选项 02 - 最常用

  • 步骤 01

    以管理员身份打开 Windows 命令提示符
  • 步骤 02

    使用以下命令找到要终止的端口的 PID:这里的端口是 8080
netstat -ano|findstr "PID :8080"

Run Code Online (Sandbox Code Playgroud)

TCP 0.0.0.0:8080 0.0.0.0:0 聆听 18264

  • 步骤 03

    使用以下命令终止您在上面收到的 PID(在我的情况下,PID 为 18264)
taskkill /PID 18264 /f
Run Code Online (Sandbox Code Playgroud)


小智 82

如果您使用的是GitBash

第一步:

netstat -ano | findstr :8080
Run Code Online (Sandbox Code Playgroud)

第二步:

taskkill /PID typeyourPIDhere /F 
Run Code Online (Sandbox Code Playgroud)

(/F强制终止流程)

  • @ kylexy1357尝试使用单斜杠."双斜杠"是一个在/之前的转义字符,某些shell不需要它 (2认同)

Dur*_*aco 60

WINDOWS10默认工具:

步骤1: 以管理员身份打开Windows PowerShell

步骤2: 找到端口8080的PID(ProcessID):

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

TCP 0.0.0.0:8080 0.0.0.0:0 LISTEN 77777

第3步: 杀死僵尸进程:

taskkill /f /pid 77777
Run Code Online (Sandbox Code Playgroud)

其中“ 77777”是您的PID

  • @Serob_b `set /p port="输入端口:"` -> 输入端口 `FOR /F "tokens=5" %%T IN ('netstat -aon ^| findstr %port% ') DO ( SET /A ProcessId =%%T) &GOTO SkipLine` `:SkipLine` -> 将 PID 提取到变量 `taskkill /f /pid %ProcessId%` -> 终止任务 `cmd /k` -> 保持窗口打开 (4认同)
  • 如果无法查看 cmd 输出然后手动编写新命令,如何自动化该过程并将这两个命令组合在一个 bat 文件中? (2认同)
  • @CrazyVideoGamez `@echo off` (2认同)

小智 33

简单的 CMD 正在为我工​​作。容易记住

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

npx kill-port 8080
Run Code Online (Sandbox Code Playgroud)

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

npx: installed 3 in 13.796s
Process on port 8080 killed
Run Code Online (Sandbox Code Playgroud)


tod*_*orm 26

Windows PowerShell版本1或更高版本中停止端口3000上的进程类型:

Stop-Process(,(netstat -ano | findstr:3000).split()| foreach {$ [$ .length-1]}) - 强制


正如@morganpdx所建议的那样,更多PowerShell-ish,更好的版本:

Stop-Process -Id(Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force

  • 我发现这有效:`Stop-Process -Id(Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force` (3认同)

Waq*_*med 20

打开命令提示符并发出以下命令

netstat -ano|findstr "PID :8888"
Run Code Online (Sandbox Code Playgroud)

输出将显示占用端口的进程 ID

在此处输入图片说明

发出以下命令以终止 PID

taskkill /pid 8912 /f
Run Code Online (Sandbox Code Playgroud)

您将收到如下输出

SUCCESS: The process with PID 8860 has been terminated.
Run Code Online (Sandbox Code Playgroud)


小智 18

用于命令行:

for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a
Run Code Online (Sandbox Code Playgroud)

用于bat文件:

for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
Run Code Online (Sandbox Code Playgroud)


小智 14

如果您已经知道端口号,则可以将软件终止信号发送到进程(SIGTERM):

kill $(lsof -t -i :PORT_NUMBER)
Run Code Online (Sandbox Code Playgroud)

  • 我必须杀死 -9 $(lsof -t -i :PORT_NUMBER) (3认同)
  • 谢谢,其他答案太多了。从字面上看只需要这个脚本 (2认同)
  • 术语“lsof”未被识别为 cmdlet、函数、脚本文件的名称 (2认同)

小智 13

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

Get-Process -Id (Get-NetTCPConnection -LocalPort "8080").OwningProcess | Stop-Process
Run Code Online (Sandbox Code Playgroud)


Zuh*_*aha 9

对于Windows用户,您可以使用CurrPorts工具轻松杀死正在使用的端口 在此处输入图片说明

  • 不需要 CurrPorts。在 Windows 10+ 中,您可以使用资源监视器,更准确地说是其网络选项卡。在底部窗格中,有一个部分列出了所有打开的端口以及正在使用这些端口的进程的 PID。 (2认同)

dri*_*der 8

我正在运行zookeeper @windows,无法使用zookeeper-stop.sh停止在2181端口运行的zookeeper,因此尝试使用这种双斜杠“ //”方法来执行taskkill。有效

     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.
Run Code Online (Sandbox Code Playgroud)


laz*_*her 8

如果您使用的是Windows 终端,那么杀戮过程可能会不那么乏味。我一直在使用 Windows 终端并且kill PID可以很好地杀死端口上的进程,因为新的 Windows 终端支持某些 bash 命令。例如:kill 13300

所以,完整的过程会是这样的——

  • 打开 Windows 终端
  • 键入以下命令以显示在您要终止进程的端口上运行的进程。 netstat -ano | findstr :PORT
  • 键入以下内容以终止该进程。 kill PID

例如:

PS C:\Users\username> netstat -ano | findstr :4445
  TCP    0.0.0.0:4445           0.0.0.0:0              LISTENING       7368
  TCP    [::]:4445              [::]:0                 LISTENING       7368
PS C:\Users\username> kill 7368
PS C:\Users\username> netstat -ano | findstr :4445
PS C:\Users\username>
Run Code Online (Sandbox Code Playgroud)

看看当我输入第一个命令来列出它返回空的端口上的进程时。这意味着现在所有进程都被杀死了。

更新:killStop-Process的别名。谢谢,@FSCKur 让我们知道。


小智 8

以管理员身份运行cmd。然后在那里输入这个代码。

netstat -ano | findstr :<8080>
Run Code Online (Sandbox Code Playgroud)

然后您可以看到在您的端口上运行的 PID。然后复制那个PID号。( PID 是一个唯一的编号,可帮助识别硬件产品或注册的软件产品。)然后在代码行下方键入并按 Enter。

taskkill /PID <Enter the copied PID Number> /F
Run Code Online (Sandbox Code Playgroud)


Dee*_*and 8

如果你使用 powershell 7+ 这对我有用。只需将此函数添加到您的 $PROFILE 文件中即可。

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

然后简单地使用killport 8080

或者如果您只喜欢命令,您可以尝试以下操作:

kill $(Get-NetTCPConnection -LocalPort 8761 -ErrorAction Ignore).OwningProcess
Run Code Online (Sandbox Code Playgroud)


Abh*_* KA 7

让我们自动化!

如果您像我一样经常遇到这个问题,请制作一个 .bat 文件并运行它以结束进程。

创建一个 bat 文件“killport.bat”

set /P port="Enter port : "
echo showing process running with port %port%

netstat -ano|findstr "PID :%port%"

set /P pid="Enter PID to kill : "

taskkill /pid %pid% /f

set /P exit="Press any key to exit..."
Run Code Online (Sandbox Code Playgroud)

通过双击运行此文件并

  1. 输入端口号(然后它将列出带有PID的进程)
  2. 输入PID杀掉

完毕

(可选的)

设置为路径环境,以便您可以从任何地方访问此文件。

您很可能知道如何向 env 添加新路径。但如果你不这样做

第 1 步(共 4 步)

在开始菜单上搜索 ENV

在此处输入图片说明

第 2 步(共 4 步)

选择环境变量

在此处输入图片说明

第 3 步(共 4 步)

选择“路径”并单击“编辑”按钮

在此处输入图片说明

第 4 步(共 4 步)

单击“新建”添加存储 .bat 文件的路径。由于我将其保存在“../Documents/bats”文件夹中,因此我添加了此路径。您的路径将取决于您保存此文件的位置。

在此处输入图片说明

打开CMD并测试。记住你的文件名就是运行这个文件的词。因为我将 .bat 文件保存为 'killport.bat' => 'killport' 是运行它的词。

在此处输入图片说明 如果喜欢!否则在这里分享你是如何做到的


flo*_*der 6

您可以通过运行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
Run Code Online (Sandbox Code Playgroud)