本文首发于我的博客
最近在新公司主要在windows下做开发,经常在cmd中ctrl+c
不能退出进程,然后强制关闭了cmd后发现还是会存在端口占用的问题。
这种情况我所了解的一般是两个解决办法,
- 第一个就是神器重启......(好像一些在Windows下的玄学问题都能靠重启解决,常人三大法宝,重启应用重启电脑重装系统)
O(∩_∩)O哈哈~开玩笑,不过有些不知名的问题确实可以靠重启解决。但是很暴力
- 那么第二种就优雅一点了,那就是依靠我们的cmd来解决问题(一般玩的6的大神靠cmd几乎能解决任何配置问题)。
例子如下图所示↓
首先依靠netstat -ano | findstr <你的端口号>
来查询此端口下的程序信息。
其中netstat命令是核心,主要作用是查询网络连接信息和系统开启的端口号,有兴趣的可以再深入挖掘一下
以上图信息为例展现的信息分别为
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 7908
协议 本地地址 外部地址 状态 PID(进程号)
那么根据这个地址与状态可以判断出此端口所占用程序的进程号
然后再利用tasklist | findstr <你的进程号>
去查询该进程号下的运行程序
在查询确认后,最后直接通过taskkill -PID <你的端口号> -F
来删除指定运行程序。
简单的三部曲,就能优雅的解决在任务管理器中找不到运行程序的尴尬。