如何停止在Mac OS X(10.11)El Capitan Server下运行的httpd?


30

我正在使用OS X El Capitan,并将服务器(应用程序)配置为允许VPN访问我的家庭网络。不幸的是,服务器应用程序已经决定开始一堆的httpd进程,现在被监听端口80,443和其他人,即使在服务器设置网站OFF,没有服务应该在这些端口上启动。

我不希望或不需要这些服务处于活动状态,并且希望关闭httpd(或从不开始)。不幸的是,我既无法杀死这些进程(它们只是立即重启),也无法通过launchctl控制它们。

sudo lsof -i :80
httpd   422 root    5u  IPv6 0x7...     0t0  TCP *:http (LISTEN)
httpd   425 _www    5u  IPv6 0x7...     0t0  TCP *:http (LISTEN)

ps u 422
USER   PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
root   422   0.0  0.0  2457156   6136   ??  Ss    5:55PM   0:00.07 /usr/sbin/httpd -D FOREGROUND -f /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf -E /private/var/log

尝试时:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

/System/Library/LaunchDaemons/org.apache.httpd.plist: Could not find specified service

那么,如何终止这些进程并释放这些端口?

我知道这里有Apache服务器的配置文件: /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf

我可以删除以下几行以取消阻止这些端口,但是httpd进程仍在运行。

listen 80
listen 443

Answers:


23

苹果代理服务是捕获端口80和443的服务,因此您需要停止该端口。

sudo launchctl unload -w /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/com.apple.serviceproxy.plist

3
事实证明,这正是我的解决方案。“ sudo apachectl stop”只是给出了与launchctl相同的错误。
Kosmonaut


8

此命令应将它们全部杀死:

sudo killall httpd

它们将在下次启动时再次启动。


3
我也没有拒绝投票,但是这可能与我提到取消进程毫无意义,因为它们会自动重新启动。
克里斯

令人惊讶的是,尝试了所有其他方法之后……该方法起作用了……由于某种原因,守护程序在卸载并以其他方式杀死后仍然存活,该方法对其进行了清理
Ray Foss
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.