Jak zatrzymać httpd działający pod Mac OS X (10.11) El Capitan Server?

30

Używam OS X El Capitan z serwerem (aplikacją) skonfigurowanym tak, aby umożliwić mi dostęp VPN do mojej sieci domowej. Niestety, aplikacja serwera zdecydowała się uruchomić kilka procesów httpd , które nasłuchują na portach 80, 443 i innych, mimo że ustawienia serwera dla stron internetowychWYŁĄCZONE i nie należy uruchamiać żadnych usług na tych portach.

Nie chcę ani nie potrzebuję tych usług aktywnych i chciałbym, aby httpd został zamknięty (lub nie zaczynał od początku). Niestety nie mogę zabić tych procesów (po prostu restartują się od razu), ani też nie mogę kontrolować ich za pomocą 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

Podczas próby:

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

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

Jak więc zakończyć te procesy i zwolnić te porty?

Wiem, że tutaj jest plik konfiguracyjny dla serwera Apache: /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf

Mogę usunąć następujące wiersze, aby odblokować te porty, ale procesy httpd nadal działają.

listen 80
listen 443
Chris
źródło

Odpowiedzi:

23

Usługa Apple proxy to usługa, która pobiera porty 80 i 443, więc musisz ją zatrzymać.

sudo launchctl unload -w /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/com.apple.serviceproxy.plist
Zanthra
źródło
3
Okazało się to dla mnie właśnie rozwiązaniem. „sudo apachectl stop” po prostu dał ten sam błąd co launchctl.
Kosmonaut
19

Możesz to zatrzymać za pomocą polecenia:

sudo apachectl stop
Przemek Krzysztof Wycisk
źródło
8

To polecenie powinno ich wszystkich zabić:

sudo killall httpd

Rozpoczną się ponownie przy następnym uruchomieniu.

stravanato
źródło
3
Ja też nie głosowałem negatywnie, ale może to mieć związek z faktem, że wspomniałem, że nie ma sensu zabijać procesów, ponieważ są one restartowane automatycznie.
Chris
co zaskakujące, po wypróbowaniu każdej innej metody ... ta zadziałała ... z jakiegoś powodu demon pozostał przy życiu po rozładowaniu i zabiciu w inny sposób, ten wyczyścił ją
Ray Foss