16
我如何杀死一个死了但正在倾听的进程?
我正在开发一个监听端口3000的应用程序。显然,有一个实例仍在监听该端口,因为无论何时启动它,它都无法创建监听器(C#,TcpListener,但这无关紧要),因为该端口已经存在采取。 现在,该应用程序在任务管理器中不存在,因此我试图找到它的PID并杀死它,这导致了有趣的结果: C:\Users\username>netstat -o -n -a | findstr 0.0:3000 TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 3116 C:\Users\username>taskkill /F /PID 3116 ERROR: The process "3116" not found. 我以前从未见过这种行为,并且认为这很有趣,可以看看是否有人可以解决。 更新:我启动了Process Explorer,并搜索了3000,发现了这一点: <Non-existent Process>(3000): 5552 我右键单击它,然后选择“关闭手柄”。它不再位于Process Explorer中,但仍显示在netstat中,并且仍使应用程序无法启动侦听器。 更新2:找到Windows的TCPView,该过程显示为"<non-existent>"。像使用CurrPorts一样,当我尝试关闭此工具中的连接时也没有任何反应。