80 端口被占用 pid=4

80端口被pid=4的系统进程给占用的解决方法:

一般开发的时候我们都会安装sqlserver ,也会把Sql server Reporting Services 安装上去。原因就是这个服务占用了80端口。

打开服务或者sqlserver配置管理器把Sql server Reporting Services停止就可以了。

说明:我比较不喜欢敲命令看端口占用,介绍一个软件看端口的还可以结束进程的请百度:cports

当然看了网上还有其他的原因,下面是网上的一下说法:


 

1、运行cmd,然后输入netstat -a -n -o,回车;

2、查看开头几行包含0.0.0.0:80的那一行最后的pid,为几个数字,把这几个数字记下来;
3、启动任务管理器”——“进程,在工具栏”——“选择列前面的框里打上勾;
4、然后找到与刚才那个pid对应的是哪个程序,很容易就会找到,就是它与0.0.0.0:80进行了绑定(bind);

 

 

结束这个进程,再点击ApacheStart按钮,终于出现了那个Running

 

 

但是上面的方法不适用我的情况。。因为我找不到pid=4的进程,于是另一方法。

Win7的80端口默认是被System进程占用的。

用如下方法可以解决System进程占用80端口的问题:

打开RegEdit:开始-运行-输入regedit-调出注册表

找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

找到一个DWORD值Start,将其改为0

重启电脑,System进程将不会占用80端口

就可以打开你的apache了



 

这种方法确实暂时解决了我的问题,应该就是这样的,但是后面又来问题了。Apache又无缘无故的打不开了。于是,最后终于发现了进程有个SQL Server ReportingServices,这个是sql servers带有的,而且自动运行,关闭它,就可以了。但是切记,可能这个进程会自动打开,所以先把apache打开,这个的话后面SQL Server ReportingServices运行也不会占用80端口了。我用的360查找的

 

我的问题总算是解决了。最后总结一下吧。

 

查询:查看占用80端口的信息,那么可以在cmd窗口输入netstat -ano | findstr "80" 命令

常见的几种情况:

1、迅雷等程序或者一些其他有上传功能的软件都会占用电脑的80端口

2、netstat -abno后查看,经过查找为pid=4的system进程,因为是系统进程,也无法结束它,经查SQL Server ReportingServices (SQLEXPRESS) 服务占用80端口,停止SQL Server ReportingServices后APache正常启动.

3、卸载internet信息服务-->万维网服务。这个是最常见的故障,或者其他一些第三方的服务器软件,必须在进程里面结束,才有效果。

备注:杀掉进程的命令:taskkill /pid 4 /f其中 /f表示强制关闭该进程

posted @ 2014-05-13 23:09  rae  阅读(632)  评论(0编辑  收藏  举报