Chr*_*ris 37 mac httpd webserver osx-server osx-el-capitan
我将 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
Run Code Online (Sandbox Code Playgroud)
尝试时:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
/System/Library/LaunchDaemons/org.apache.httpd.plist: Could not find specified service
Run Code Online (Sandbox Code Playgroud)
那么,如何终止这些进程并释放这些端口?
我知道这里有一个 apache 服务器的配置文件: /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf
我可以删除以下几行来取消阻止这些端口,但httpd进程仍在运行。
listen 80
listen 443
Run Code Online (Sandbox Code Playgroud)
小智 35
你可以用命令停止它:
sudo apachectl stop
Run Code Online (Sandbox Code Playgroud)
小智 24
苹果代理服务是抢占80和443端口的服务,所以你需要停止那个。
sudo launchctl unload -w /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/com.apple.serviceproxy.plist
Run Code Online (Sandbox Code Playgroud)
小智 11
此命令应该将它们全部杀死:
sudo killall httpd
Run Code Online (Sandbox Code Playgroud)
它们将在下次启动时再次启动。
小智 7
如果其他人通过搜索httpd或端口 80来解决此问题,但没有运行 Server.app,这是 macOS Monterey 12.x 及更高版本的解决方案:
sudo launchctl bootout system/org.apache.httpd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52226 次 |
| 最近记录: |