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

时间:2016-09-22 07:19:51

标签: windows cmd localhost port command-prompt

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

例如:localhost:8080

24 个答案:

答案 0 :(得分:659)

第1步

以管理员身份运行命令行。然后运行下面提到的命令。 在 yourPortNumber

中键入您的端口号
  

netstat -ano | findstr: yourPortNumber

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

第2步

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

  

taskkill / PID typeyourPIDhere / F

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

答案 1 :(得分:84)

第1步(由answer撰写的同意KavinduWije):

<View style={{flexDirection:'column',justifyContent:'space-between'}}>
     <View>
        <Text>view 1</Text>
    </View>
    <View>
        <Text>view 2</Text>
    </View>
    <View>
        <Text>fixed footer</Text>
    </View>
</View>

将第2步更改为:

netstat -ano | findstr :yourPortNumber

这是因为tskill typeyourPIDhere 在某些git bash命令中不起作用

答案 2 :(得分:72)

如果您使用的是GitBash

第一步:

netstat -ano | findstr :8080

第二步:

taskkill /PID typeyourPIDhere /F 

/F强制终止该过程)

答案 3 :(得分:39)

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

要求:npm@5.2.0^版本

npx kill-port 8080

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

答案 4 :(得分:29)

简单的 CMD 正在为我工​​作。好记

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

npx kill-port 8080

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

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

答案 5 :(得分:22)

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

答案 6 :(得分:20)

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

netstat -ano|findstr "PID :8888"

输出会显示占用端口的进程id

enter image description here

发出以下命令以终止 PID

taskkill /pid 8912 /f

您将收到如下输出

SUCCESS: The process with PID 8860 has been terminated.

答案 7 :(得分:16)

Windows的结果

在我的情况下8080是我要杀死的端口
和PID侦听端口8080的是18264
因此,您要杀死的任务是特定端口的pid

C:\Users\Niroshan>netstat -ano|findstr "PID :8080"

Proto Local Address Foreign Address State PID
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 18264

taskkill /pid 18264 /f

答案 8 :(得分:11)

用于命令行:

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

用于蝙蝠文件:

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

答案 9 :(得分:9)

使用Windows10默认工具:

1。)查找端口8080的PID(ProcessID):

netstat -aon | findstr 8080
  

TCP 0.0.0.0:8080 0.0.0.0:0 LISTEN 11999

2。)杀死僵尸进程:

taskkill /F /PID 11999

其中“ 11999”是您的PID

答案 10 :(得分:7)

对于Windows用户,您可以使用CurrPorts工具轻松杀死正在使用的端口 enter image description here

答案 11 :(得分:6)

让我们自动化!

如果您和我一样经常遇到这个问题,请制作一个 .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..."

双击运行这个文件

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

完成

(可选)

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

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

第 1 步,共 4 步

在开始菜单上搜索 ENV

enter image description here

第 2 步,共 4 步

选择环境变量

enter image description here

第 3 步,共 4 步

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

enter image description here

第 4 步,共 4 步

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

enter image description here

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

enter image description here 如果喜欢! 否则在这里分享你是如何做到的

答案 12 :(得分:6)

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

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

答案 13 :(得分:6)

如果您使用的是Windows Terminal,则杀死过程可能会少一些乏味。 我一直在使用Windows终端,由于新的Windows终端支持某些bash命令,因此kill PID可以很好地终止端口上的进程。例如: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>

请参阅何时键入第一个命令以列出端口返回空的进程。这意味着所有进程现在都被杀死。

答案 14 :(得分:5)

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

netstat -ano | findstr :<8080>

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

taskkill /PID <Enter the copied PID Number> /F

答案 15 :(得分:5)

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

kill $(lsof -t -i :PORT_NUMBER)

答案 16 :(得分:3)

第一步

netstat -vanp tcp | grep 8888

示例

tcp4     0      0    127.0.0.1.8888   *.*    LISTEN      131072 131072  76061    0
tcp46    0      0    *.8888           *.*    LISTEN      131072 131072  50523    0

第二步:找到您的PID并杀死它们

就我而言

sudo kill -9 76061 50523

答案 17 :(得分:3)

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

using System;
using System.Collections.Generic;

namespace Hangman

{
    class Program
    {

    List<String> words = new List<String> { "cat", "police", "conjuring", "sand", "hoppleflink", "defenestrait", "cumberground", "sexy shreck" };

    public string PickRandom()
    {
        var random = new Random();
        var wordCount = words.Count;
        var randomNum = random.Next(wordCount);
        var randomWord = words[randomNum];
        return randomWord;


    }

    static void Main(string[] args)
    {
        Console.WriteLine(); 
    }

}

答案 18 :(得分:3)

您可以通过运行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

答案 19 :(得分:3)

如果您想使用python来做:请检查Is possible in python kill process which is running on specific port, for example 8080? Smunk的答案很好用。我在这里重复他的代码:

from psutil import process_iter
from signal import SIGTERM # or SIGKILL

for proc in process_iter():
    for conns in proc.connections(kind='inet'):
        if conns.laddr.port == 8080:
            proc.send_signal(SIGTERM) # or SIGKILL
            continue 

答案 20 :(得分:1)

使用 GitBash 的一线解决方案:

 tskill `netstat -ano | grep LISTENING | findstr :8080 | sed -r 's/(\s+[^\s]+){4}(.*)/\1/'`

8080 替换为服务器正在侦听的端口。

如果您需要经常使用它,请尝试将功能添加到~/.bashrc

function killport() {
        tskill `netstat -ano | findstr LISTENING | findstr :$1 | sed -r 's/^(\s+[^\s]+){4}(\d*)$/\1/'`
}

只需运行

killport 8080

答案 21 :(得分:1)

netstat -ano | findstr :PORT
kill PI

答案 22 :(得分:0)

这是在WSL2中执行此操作的脚本

PIDS=$(cmd.exe /c netstat -ano | cmd.exe /c findstr :$1 | awk '{print $5}')
for pid in $PIDS
do
    cmd.exe /c taskkill /PID $pid /F
done

答案 23 :(得分:0)

我们可以通过使用波纹管命令简单地重新启动IIS来避免这种情况。

IISRESET