Apache 已停止httpd,但localhost仍绑定到0.0.0.0:80

Apache 已停止httpd,但localhost仍绑定到0.0.0.0:80,apache,homebrew,Apache,Homebrew,我使用brew安装httpd,我使用brew服务停止httpd停止了服务,然后我访问了locahost,我仍然可以看到apache正在运行?您需要发出以下命令:服务httpd停止您必须终止进程。正如我从您的评论中看到的,您正在以用户www和root的身份运行httpd: _www 3356 0.0 0.0 2455088 704 ?? S 9:25AM 0:00.00 /usr/sbin/httpd -D FOREGROUND root 3355 0.0 0.0 2455344 3588 ??

我使用brew安装
httpd
,我使用
brew服务停止httpd
停止了服务,然后我访问了locahost,我仍然可以看到apache正在运行?

您需要发出以下命令:
服务httpd停止

您必须终止进程。正如我从您的评论中看到的,您正在以用户
www
root
的身份运行
httpd

_www 3356 0.0 0.0 2455088 704 ?? S 9:25AM 0:00.00 /usr/sbin/httpd -D FOREGROUND 
root 3355 0.0 0.0 2455344 3588 ?? Ss 9:25AM 0:00.14 /usr/sbin/httpd -D FOREGROUND 
private.laptop 3967 0.0 0.0 2444068 816 s004 S+ 9:46AM 0:00.00 grep httpd
第一列表示
用户
,第二列表示进程ID或
PID

尝试运行:

sudo kill -9 3356
sudo kill -9 3355
每次执行后,使用
ps aux | grep httpd

最后一个进程
private.laptop
与您的问题无关,因此无需终止它


如果您的问题没有通过此解决,那么可能是守护进程正在执行您的httpd。

您使用的是哪个操作系统?
brew
不会给您任何线索吗?奥斯,我没想过。然后尝试/usr/sbin/apachectl stop您可以尝试使用:
sudo netstat-lp | grep 80
这将显示端口绑定的进程的PID。如果这不是apache,请杀死它。如果这是apache,请将其杀死;)尝试使用
sudo apachectl stop
,或者只使用
kill-9
检查服务是否正在运行:
pgrep-fl httpd
。如果是的话,可能是卡住了。尝试使用以下命令终止实例:
pkill-f httpd
pkill-f apache2
。如果这些都不起作用,请尝试
kill-9
(您将从第一个命令获得进程的PID)@MattClark netstat:选项需要一个参数--p@MiguelOrtiz我得到了一堆
97/usr/sbin/httpd-D前台276/usr/sbin/httpd-D前台902/usr/sbin/httpd-D前台903/usr/sbin/httpd-D前台904/usr/sbin/httpd-D前台2009/usr/sbin/httpd-D前台
它们是什么?他们是自己启动的吗?@Melissa92,你有几个进程实例正在运行(可能是父进程和子进程),试着杀死他们中的每一个,直到没有人。我在杀死www.40180.0 0.0 2455088 720后得到了这个消息??S 9:53AM 0:00.00/usr/sbin/httpd-D前景根4017 0.0 0.0 2455344 3580??Ss 9:53AM 0:00.11/usr/sbin/httpd-D foreground它将在杀戮后重新出现。@Melissa92是的,可能是守护进程自动启动了您的httpd,请检查更新的答案。