如何删除已分配给端口的当前进程/应用程序?
例如:localhost:8080
答案 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
发出以下命令以终止 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工具轻松杀死正在使用的端口
答案 11 :(得分:6)
如果您和我一样经常遇到这个问题,请制作一个 .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..."
双击运行这个文件
完成
设置为路径环境,以便您可以从任何地方访问此文件。
您很可能知道如何向 env 添加新路径。但如果你不这样做
在开始菜单上搜索 ENV
选择环境变量
选择“路径”并点击编辑按钮
单击“新建”添加 .bat 文件的存储路径。由于我将其保存在“../Documents/bats”文件夹中,因此我添加了此路径。您的路径将取决于您保存此文件的位置。
答案 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
因此,完整的过程将如下所示-
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