22

Я использую OS X El Capitan с сервером (приложением), настроенным для предоставления мне доступа VPN к моей домашней сети. К сожалению, приложение «Сервер» решило запустить несколько процессов httpd , которые в настоящее время прослушивают порты 80, 443 и другие, даже если настройки «Сервер» для веб-сайтов выключены и на этих портах не должны запускаться никакие службы.

Я не хочу или не хочу, чтобы эти службы были активными, и хотел бы, чтобы 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

3 ответа3

16

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

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

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

sudo apachectl stop
5

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

sudo killall httpd

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .