netsh http show servicestate 找到进程ID,任务管理器停止相关服务
昨天刚更新了Windows10,总体上来说效果还是蛮不错的,然而今天在开启Apache服务器的时候却发现,Apache莫名其妙的打不开了,起初以为是权限的问题,于是使用管理员身份的控制台去调用命令net start Apache2.4,结果依然是无法打开。手动启动服务报错“Windows不能再本地计算机启动Apache,有关更多信息,查阅系统时间日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。”如下图所示:
Windows不能再本地计算机启动Apache,有关更多信息,查阅系统时间日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1。
看到这种情况,我有手动cd到Apache的httpd.exe的目录,执行了一下httpd,这下原因找到了,如下图所示:
(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端口,如图所示端口查找的结果:
看到80端口被PID为4的System进程占用,呵呵,我想说一句我擦嘞什么鬼+_+。仔细想了想,一般的程序不会占用80,遂使用命令 netsh http show servicestate 查看一下当前的http服务状态,发现果然有问题,如下图所示:
图中可以看到,80端口被一个DefaultAppPool的东西占用了,如果用过IIS的童鞋,这时候肯定一定想到了原因,这里我们依然要接着往下找原因,图中可以看出控制器进程ID为4640,那么就 就继续查看一下4640进程是什么鬼,进入任务管理器,找到PID4640的进程,右键转到服务,可以看到当前的进程所在的服务,如图所示:
看到图中的服务,这里原因也就找到了,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 略显疑惑
我们继续看,得到使用 80 端口的 PID了,还等什么?开 taskmgr!(任务管理器)
任务管理器查看 PID 的方法:
上方在 cmd 中,我们得到 PID = 4212,现在我们看看是什么东西在作怪
看到上图的结果,恍然大悟!如果大家不确定那是一个什么进程,我们对他右键 - 打开文件所在位置
这下大家应该都明白了吧。我这个占用的根本是 SQL Server 的报告服务
最后我去 services.msc 里停止他并设置这个服务为手动就搞定了。
如何查看当前 80 端口占用情况:
1
netstat -ano | findstr 0.0.0.0:80
这段命令输入后回车,中间无内容即表示无占用
80端口被占用
80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,主要用于WWW(World Wide Web)即万维网传输信息的协议。搭建网站主要使用的也是80端口,但是当80端口被其他的程序占用时应该怎么办呢?
?在windows下查看80端口占用情况?是被哪个进程占用?如何终止进程?
这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:
netstat -aon | findstr "80"
然后会出现占用80端口的进程PID
ProtoLocal Address? ? ? ? ? ? ? Foreign Address? ? ? ? ?State? ? ? ? ? ?PID
可以看出80端口被进程号为4306的程序占用.
tasklist | findstr "4306"
进程名? ? ? ? ? ? ? ? ? ? ?PID ?会话名? ? ? ? ? 会话 内存使用
很明显,是httpd占用了80端口;httpd.exe是Apache相关程序,是服务器软件中的一个进程,这是属于正常的使用。
不过,并不是只有httpd.exe进程会占用80端口,可能有其他的程序也会占用80端口,当你不知道占用端口的进程是干什么用的时,最好先查一下,避免关闭了正常使用的程序造成不必要的麻烦,如果确定是无效或恶意占用的程序就可以执行下面的命令.
taskkill /pid 4306 /F
成功: 已终止 PID 为 4306 的进程。
这表示使用上面的命令已将PID为4306的进程终止.(这一步同样可以在任务管理器中执行,httpd.exe就是任务管理器中的映像名称,选中它,点击"结束进程"即可)
tasklist | findstr "4306"
再次确认是否成功终止,如果成功终止此次执行命令后应返回空.
80端口被占用如何解决?
cmd -> netstat -oan -> IP后面的就是端口,找到80 ,记住对应的PID!!然后打开任务管理器 查看 -> 选择列 -> 勾上 PID(进程标识符) -> 确定
在任务管理器找到刚才的PID的进程关闭!!!
80端口被占用怎么解决
1,按WIN+R,在运行框中输入:CMD,点击确定。2,在CMD窗口,输入:netstat -ano,回车,即可查看所有的端口占用情况。
3,在CMD窗口,输入:netstat -aon|findstr "端口" ,回车,查看指定端口的占用情况。
4,然后看到占用端口的软件的PID后,在CMD窗口,输入:tasklist|findstr "PID号",即可看到占用了端口的程序名称。
5、在CMD窗口,输入:taskkill /f /t /im 程序名称,回车,结束该进程。
80端口被占用怎么办
这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令: >netstat -aon | findstr "80"ProtoLocal AddressForeign AddressStatePID
==============================================
TCP0.0.0.0:800.0.0.0:0LISTENING1688 可以看出80端口被进程号为1688的程序占用.
>tasklist | findstr "1688"
图像名PID会话名会话# 内存使用
========================= ====== ================ ======== ============
inetinfo.exe1688 Console02,800 K 很明显,是inetinfo占用了80端口;inetinfo.exe主要用于支持微软Windows IIS网络服务的除错,这个程序对你系统的正常运行是非常重要的.
>taskkill /pid 1688 /F
成功: 已终止 PID 为 1688 的进程。
如果你很熟悉此进程,并确定可以终止,那么就直接使用上面的命令把PID为1688的进程终止.(这一步同样可以在任务管理器中执行,inetinfo.exe就是任务管理器中的映像名称,选中它,点击"结束进程"即可)
再次确认是否成功终止,如果成功终止此次执行命令后应返回空 强制终止 inetinfo.exe iis 服务:iisreset.exe /stop