【问题标题】:stopped httpd but localhost still bind to 0.0.0.0:80停止 httpd 但 localhost 仍然绑定到 0.0.0.0:80
【发布时间】:2018-07-03 00:41:52
【问题描述】:

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

【问题讨论】:

  • 您可以尝试使用:sudo netstat -lp | grep 80 这将显示绑定端口的进程的 PID。如果这不是 apache,请杀死它。如果这是 apache,杀掉它;) 尝试使用 sudo apachectl stop,或者只是 kill -9 <thePID>
  • 检查服务是否正在运行:pgrep -fl httpd。如果它可能是卡住了。尝试使用 pkill -f httpdpkill -f apache2 杀死实例。如果这些不起作用,请尝试kill -9 <PID>(您将从第一个命令中获取进程的 PID)。
  • @MattClark netstat: 选项需要一个参数 -- p
  • @MiguelOrtiz 我得到了一堆97 /usr/sbin/httpd -D FOREGROUND 276 /usr/sbin/httpd -D FOREGROUND 902 /usr/sbin/httpd -D FOREGROUND 903 /usr/sbin/httpd -D FOREGROUND 904 /usr/sbin/httpd -D FOREGROUND 2009 /usr/sbin/httpd -D FOREGROUND 它们是什么?他们是自己开始的吗?
  • @Melissa92,你有几个正在运行的进程实例(可能是父进程和子进程)尝试杀死每个实例,直到没有一个。

标签: apache homebrew


【解决方案1】:

您需要给出以下命令:service httpd stop

【讨论】:

  • 您使用的是哪个操作系统?
  • brew 没有给你线索? OSX。
  • 我没想到。然后尝试 /usr/sbin/apachectl stop
【解决方案2】:

您必须终止进程。正如我从您的评论中看到的那样,您正在以用户 wwwroot 的身份运行 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

第一列代表user,第二列代表进程ID或PID

尝试运行:

sudo kill -9 3356
sudo kill -9 3355

每次执行后,使用ps aux | grep httpd验证服务消失

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

如果你的问题没有解决,可能是一个守护进程正在执行你的httpd,请refeer to this

【讨论】:

  • 杀死_www 4018 0.0 0.0 2455088 720 ?? S 9:53AM 0:00.00 /usr/sbin/httpd -D FOREGROUND root 4017 0.0 0.0 2455344 3580 ?? Ss 9:53AM 0:00.11 /usr/sbin/httpd -D FOREGROUND
  • 杀死后会重新出现。
  • @Melissa92 是的,可能是一个守护进程自动启动您的 httpd,请检查更新后的答案。
猜你喜欢
  • 2016-11-11
  • 2013-06-22
  • 2017-01-27
  • 2012-04-26
  • 2014-05-06
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多