GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

问题过程

启动项目,一直显示“通常只能允许一个端口使用一次”,怀疑是8080端口被占用
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

在浏览器输入127.0.0.1:8080,发现能直接登上项目,但是实际上项目并未启动
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

SQL注入页面填写数据库查询信息,后台也并未输出任何查询结果
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

app.conf中将项目的端口号改为8081,然后运行
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

仍然到SQL注入页面填写数据库查询信息
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

后台显示如下,仍没有任何查询输出结果
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

查找缘由

启动cmd命令行,输入netstat -aon|findstr "8080" ,查询8080端口的占用情况,发现被一个PID(进程标识符)为“21432”的进程所监听(listening)
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

cmd中输入tasklist|findstr "21432",查看pid21432所对应的进程或服务
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

可以看到,一个名为___2go_build_main_go.exe的进程占用了8080端口

现在打开进程浏览器,将其杀死(结束进程)即可
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据

真相大白

实际上,原来是上次退出GoLand的时候,选择了Disconnect而没有选择Terminate。坑爹啊,我以为中止和断开连接是一样的,没想到Disconnect的意思类似于服务器仍然开着,但是在后台挂机
GO语言Beego框架之WEB安全小系统(番外篇)端口一直被占据