Answers:
步骤1:
打开cmd.exe(注意:您可能需要以管理员身份运行它,但这并不总是必须的),然后运行以下命令:
netstat -ano | findstr :PORT_NUMBER
(用所需的端口号替换PORT_NUMBER,但保留冒号)
以红色圈出的区域显示PID(过程标识符)。找到正在使用所需端口的进程的PID。
第2步:
接下来,运行以下命令:
taskkill /PID PORT_NUMBER /F
(这次没有冒号)
最后,您可以通过重新运行“步骤1”中的命令来检查操作是否成功。如果操作成功,您将不会再看到该端口号的搜索结果。
taskkill //PID 12552 //F
taskkill /PID PORT_NUMBER /F
第1步(与KavinduWije所写的答案相同):
netstat -ano | findstr :yourPortNumber
在步骤2中更改为:
tskill typeyourPIDhere
注意:taskkill
在某些git bash终端中不起作用
使用Windows 10默认工具:
以管理员身份打开Windows PowerShell
查找端口8080的PID(ProcessID):
netstat -aon | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTEN 77777
杀死僵尸进程:
taskkill /f /pid 77777
其中“ 77777”是您的PID
set /p port="Enter 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
->保持窗口打开
在Windows PowerShell版本1或更高版本中,要在端口3000上停止进程,请输入:
停止进程(,(netstat -ano | findstr:3000).split()| foreach {$ [$ .length-1]})-强制
正如@morganpdx所建议的那样,这里有一些类似于PowerShell的更好的版本:
Stop-Process -Id(Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
'Stop-Process' is not recognized as an internal or external command,
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess -Force
在命令行中使用:
for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a
用于bat文件:
for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
我在Windows上运行zookeeper,但无法使用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.
如果您使用的是Windows终端,则杀死过程可能会少一些乏味。我一直在使用Windows终端,kill PID
由于新的Windows终端支持某些bash命令,因此可以很好地终止端口上的进程。例如: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>
请参阅何时键入第一个命令以列出端口上的进程,但返回的内容为空。这意味着现在所有进程都被杀死。
kill
。如果发现的话请在这里张贴。
如果您想使用Python进行操作:请检查python中是否可以杀死正在侦听特定端口(例如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
我们可以使用以下命令通过简单地重新启动IIS来避免这种情况:
IISRESET
使用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