Как мне прекратить работу httpd под Mac OS X (10.11) El Capitan Server?

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
Крис
источник

Ответы:

23

Служба Apple Proxy - это служба, которая захватывает порты 80 и 443, поэтому вам нужно остановить ее.

sudo launchctl unload -w /Applications/Server.app/Contents/ServerRoot/System/Library/LaunchDaemons/com.apple.serviceproxy.plist
Zanthra
источник
3
Это оказалось точно решением для меня. "sudo apachectl stop" просто выдал ту же ошибку, что и launchctl.
Космонавт
19

Вы можете остановить это командой:

sudo apachectl stop
Przemek Krzysztof Wycisk
источник
8

Эта команда должна убить их всех:

sudo killall httpd

Они начнут снова при следующей загрузке.

stravanato
источник
3
Я также не отрицал, но это может быть связано с тем, что я упомянул, что нет смысла убивать процессы, так как они перезапускаются автоматически.
Крис
Удивительно, но после того, как попробовал любой другой метод ... этот работал ... по какой-то причине демон остался жив после разгрузки и убил любым другим способом, этот очистил его
Рэй Фосс