欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

cmd查看进程占用端口(windows查看进程端口命令)

程序员文章站 2023-11-27 16:18:52
netsh http show servicestate 找到进程id,任务管理器停止相关服务昨天刚更新了windows10,总体上来说效果还是蛮不错的,然而今天在开启apache服务器的时候却发现,...

netsh http show servicestate 找到进程id,任务管理器停止相关服务

昨天刚更新了windows10,总体上来说效果还是蛮不错的,然而今天在开启apache服务器的时候却发现,apache莫名其妙的打不开了,起初以为是权限的问题,于是使用管理员身份的控制台去调用命令net start apache2.4,结果依然是无法打开。手动启动服务报错“windows不能再本地计算机启动apache,有关更多信息,查阅系统时间日志。如果这是非microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。”如下图所示:

cmd查看进程占用端口(windows查看进程端口命令)

windows不能再本地计算机启动apache,有关更多信息,查阅系统时间日志。如果这是非microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。

看到这种情况,我有手动cd到apache的httpd.exe的目录,执行了一下httpd,这下原因找到了,如下图所示:

cmd查看进程占用端口(windows查看进程端口命令)

(os 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试。 : ah00072: make_sock: could not bind to address 127.0.0.1:80 ah00451: no listening sockets available, shutting down ah00015: unable to open logs

从图中可以看到错误的原因是套接字绑定错误,这下可以确定是apache的80端口被占用了。于是就使用命令 netstat -ano 来查看一下到底是哪个程序占用了80端口,如图所示端口查找的结果:

cmd查看进程占用端口(windows查看进程端口命令)

看到80端口被pid为4的system进程占用,呵呵,我想说一句我擦嘞什么鬼+_+。仔细想了想,一般的程序不会占用80,遂使用命令 netsh http show servicestate 查看一下当前的http服务状态,发现果然有问题,如下图所示:

cmd查看进程占用端口(windows查看进程端口命令)

图中可以看到,80端口被一个defaultapppool的东西占用了,如果用过iis的童鞋,这时候肯定一定想到了原因,这里我们依然要接着往下找原因,图中可以看出控制器进程id为4640,那么就 就继续查看一下4640进程是什么鬼,进入任务管理器,找到pid4640的进程,右键转到服务,可以看到当前的进程所在的服务,如图所示:

cmd查看进程占用端口(windows查看进程端口命令)
cmd查看进程占用端口(windows查看进程端口命令)

看到图中的服务,这里原因也就找到了,iis的world wid web publishing service 万维网服务的问题。

解决方案:

控制面板–>程序–>启用或者关闭windows功能–>找到internet information service,将其关闭即可

最近电脑时不时就发生了80端口被占用的情况,简单百度解决后,当重启电脑的时候又发生被占用的情况.今天非常幸运的是,发生了80端口和8080端口都被占用了情况,忍无可忍决定下定决心解决这个坑爹的问题,经过重新百度完美地解决了这个问题,下面贴出解决方法:

一:原文地址:
http://www.2cto.com/os/201505/399603.html

我的占用原因是 sql server reporting services,停止掉这个服务并设置其为手动启动即可

如果你并没有安装 sql server,请参考下文解决

===============================================================================

突然发现 80 端口被莫名占用,咋一看还是 system 这个进程

又无法结束这货,于是开始慢慢查看到底是什么东西占用了

首先,打开 cmd 跑这一句,80 端口被system 占用,肯定是 http 服务搞的鬼

1

netsh http show servicestate

看到 reportserver 略显疑惑

cmd查看进程占用端口(windows查看进程端口命令)

我们继续看,得到使用 80 端口的 pid了,还等什么?开 taskmgr!(任务管理器)

cmd查看进程占用端口(windows查看进程端口命令)

任务管理器查看 pid 的方法:

cmd查看进程占用端口(windows查看进程端口命令)

上方在 cmd 中,我们得到 pid = 4212,现在我们看看是什么东西在作怪

cmd查看进程占用端口(windows查看进程端口命令)

看到上图的结果,恍然大悟!如果大家不确定那是一个什么进程,我们对他右键 – 打开文件所在位置

cmd查看进程占用端口(windows查看进程端口命令)

这下大家应该都明白了吧。我这个占用的根本是 sql server 的报告服务

cmd查看进程占用端口(windows查看进程端口命令)

最后我去 services.msc 里停止他并设置这个服务为手动就搞定了。

如何查看当前 80 端口占用情况:

1

netstat -ano | findstr 0.0.0.0:80

这段命令输入后回车,中间无内容即表示无占用

二:原文地址:
https://www.caogenjava.com/detail/75.html

今天笔者想在server2008服务器上用80端口跑个项目,但是系统提示80端口被占用,端口被占用这在开发过程中是常见的事情,查一下被谁占用了,干掉他不就完了。一查不要紧,结果太诡异,使用netstat -ano命令查看,80端口被pid的为0的进程给占用了,用任务管理器一看,这个pid为0的进程竟然是系统闲置进程即system idle process,这个进程可是干不掉的,于是乎一通百度。

首先在一篇百度文库里找到了一篇帖子,说的是被sqlserver数据库给占用了,因为我那台服务器确实也安装了该数据库,原以为就是它的原因,但是按照文章中的说明处理之后80端口还是被占用,重启服务器之后依旧。那篇帖子地址是这个:《解决windows server 2008 system进程占用80端口》。

最终终于在其他帖子里找到了答案,废话不多说,直接上方案。

打开设备管理器,点击菜单栏中的查看–>显示隐藏设备,这时候你能看到非即插即用驱动程序,展开,找到http,双击切换到驱动程序选项卡,将类型设为已禁用,确定,重启系统。(注:理论上,你直接点停止也是可以的,但是我点击之后系统总是卡死。禁用还是要设置的,否则系统重启之后80又被占用了),http驱动通常是打印机之类的设备连接造成的端口占用

cmd查看进程占用端口(windows查看进程端口命令)