如何停止在 Mac OS X (10.11) El Capitan 伺服器下執行的 httpd?

如何停止在 Mac OS X (10.11) El Capitan 伺服器下執行的 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

相關內容