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

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

我正在使用 OS X El Capitan,服务器(应用程序)配置为允许我通过 VPN 访问我的家庭网络。不幸的是,服务器应用程序决定启动一堆httpd进程现在正在监听端口 80、443 和其他端口,即使服务器设置网站离开并且这些端口上不应启动任何服务。

我不想或不需要这些服务处于活动状态,并希望关闭 httpd(或从一开始就不启动)。不幸的是,我既不能终止这些进程(它们会立即重新启动),也不能通过以下方式控制它们启动控制

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

答案1

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

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

答案2

您可以使用命令停止该操作:

sudo apachectl stop

答案3

这个命令应该可以杀死它们:

sudo killall httpd

它们将在下次启动时重新启动。

答案4

如果其他人通过搜索找到此问题httpd或者端口 80但没有运行 Server.app,这是针对 macOS Monterey 12.x 及更高版本的解决方案:

sudo launchctl bootout system/org.apache.httpd

相关内容