我的一位同事最近遇到了一个问题,那个据说死亡的进程仍然绑定在一个networking端口上,阻止其他进程绑定到这个端口。 具体地说, netstat -a -b报告一个名为System with PID 4476的进程打开了端口60001,除了没有PID 4476的进程存在,至less据我所知。
进程资源pipe理器和任务pipe理器没有列出PID 4476(虽然有另一个名为System PID 4,它有自己的一套TCP连接,不包括60001)进程。 taskkill /PID 4476也报告找不到PID 4476。
有没有办法杀死这个神秘的系统进程释放目前绑定的端口? 什么会导致这种情况发生? 怎样才能有任务pipe理器,进程资源pipe理器和taskkill都不知道的进程? 重新启动pipe理来解决这个问题,但我想知道是否有办法解决这个问题,而无需重新启动。
我知道这是一个古老的线索,但如果其他人有同样的问题,我有…
可能发生的情况是,您的进程在TCP端口崩溃或以其他方式退出而未明确closures的情况下打开。 通常情况下,操作系统清理这些东西,但只有当过程logging消失时。 虽然这个过程似乎没有再运行,但至less有一件事情可以保留它的logging,以防止重复使用它的PID。 这是一个不与父母分离的subprocess的存在。
如果您的程序在运行时产生了任何进程,请尝试杀死它们。 这应该导致其进程logging被释放,TCP端口被清除。 显然,当logging被释放的时候,窗口会这样做,而不是像我期望的那样,当进程退出时。
你尝试使用TCPView并closures连接? 我不知道它是否会在你描述的场景中显示出连接,因为我从来没有发生过这种情况。 但如果再次发生这是我唯一能想到的事情。
这个过程是什么 – 是商业软件还是自制软件? 看起来60001端口被一些木马程序所使用 – 我想知道它是否可能是一个rootkit或者可能会把它从操作系统中隐藏起来的东西? 可能希望一次性使用AV,也许可以从可启动媒体中获益。
我早些时候遇到过同样的问题,netstat -a -n windows命令给了我带有进程ID的开放端口列表。 从那里我拿起了我想closures连接的端口号,然后我使用TCPView软件closures了连接。 这对我有效。
如果您是Windows用户,请按照以下步骤操作:转到此path:控制面板\所有控制面板项目\pipe理工具
第二步:点击服务
第三步:停止在需要的端口上运行不需要的服务。
ps -ef | grep进程名
杀死相关进程
kill -9 pid pid
在我的情况下工作