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

例如:localhost:8080


当前回答

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

其他回答

让我们自动化!

如果你像我一样经常遇到这个问题,创建一个.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..."

通过双击和运行此文件

输入端口号(然后它将列出带有PID的进程) 输入PID kill

Done

(可选)

设置为path environment,以便您可以从任何地方访问此文件。

你很可能知道如何给env添加一个新路径。但如果你不这样做,你可以这样做

1 / 4

在开始菜单上搜索ENV

2 . 4步

选择环境变量

3 / 4步骤

选择“path”,然后点击编辑按钮

4 / 4步骤

点击“新建”添加。bat文件的存放路径。自从我把它存到…我正在添加这个路径。您的路径将取决于您保存该文件的位置。

打开CMD并测试。请记住,您的文件名将运行此文件的单词。因为我把。bat文件保存为'killport.bat' => 'killport'是运行它的词。

如果你喜欢! 在这里分享你是如何做到的

用于命令行:

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

如果您已经知道端口号,那么向进程发送软件终止信号(SIGTERM)可能就足够了:

kill $(lsof -t -i :PORT_NUMBER)

最简单的解决办法,也是我唯一记得的办法:

在Windows Powershell中

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

获取过程:

netstat -ano | findstr :8080

停止进程

stop-process 82932

步骤1:

打开cmd.exe(注意:您可能需要以管理员身份运行它,但这并不总是必要的),然后运行以下命令:

网络统计 -什么 |查找 :<PORT>

(将<PORT>替换为您想要的端口号,但保留冒号)

红色圈出的区域显示PID(进程标识符)。找到正在使用所需端口的进程的PID。

步骤2:

接下来,执行如下命令:

taskkill /PID <PID> /F

(这次没有冒号)

最后,您可以重新执行“步骤1”中的命令来检查操作是否成功。如果它是成功的,你不应该看到任何更多的搜索结果的端口号。