一键解决端口号占用 Address/Port already in use

存在问题:

在软件测试, 运行过程中难免碰到端口号被占用的情况, 我们需要查看占用端口的进程, 并进行相应处理

Address already in use

Port already in use

解决方法:

1.查找当前使用该端口号的进程

netstat -ano | findstr 8080
# -a 显示所有连接和侦听端口
# -n 以数字形式显示地址和端口号
# -o 显示拥有的与每个连接关联的进程 ID

一键解决端口号占用 Address/Port already in use

netstat是查看网络状态

2.查看进程详情 (指定进程号PID)

tasklist | findstr 7068

一键解决端口号占用 Address/Port already in use

3.杀死对应进程 (指定进程号PID)

taskkill /f /t /im 7068
# /f 是强制终止
# /t 是结束进程树
# /im imagename的缩写,指定进程名称, 也可以指定进程号
# /pid 指定进程号, 跟/im选择一个使用

一键解决端口号占用 Address/Port already in use

一键解决方案 (bat脚本):

原作者【xiaostudy】的脚本, 稍微修改了一下

(可输入端口号, 支持多个端口, 避免杀死外地占用端口调用本地端口的进程, 只杀死本地进程)

@echo off
setlocal enabledelayedexpansion
set /p port=请输入端口号(多个端口请用英文逗号分隔):
for %%a in (%port%) do (
    set pid=0
    for /f "tokens=2,5" %%b in ('netstat -ano ^| findstr ":%%a"') do (
        set temp=%%b
        for /f "usebackq delims=: tokens=1,2" %%i in (`set temp`) do (
            if %%j==%%a (
                taskkill /f /pid %%c
                set pid=%%c
                echo 端口号【%%a】相关进程已杀死
            ) else (
                echo 不是本机占用端口【%%a】
            )
        )
    )
    if !pid!==0 (
       echo 端口号【%%a】没有占用
    )
)
echo 操作完成
pause
上一篇:数据泵同步异库之间的用户数据


下一篇:LINUX CFS 调度tick逻辑