¿Cómo se anula correctamente el registro de httpd del inicio al reiniciar después de sudo wfsctl start y el siguiente sudo wfsctl stop ?
Background:
wfsctl es una "utilidad de control de uso compartido de archivos WebDAV" lanzada con macOS High Sierra. wfsctl se encuentra en /usr/sbin/wfsctl .
En mi caso, después de una instalación inicial de macOS High Sierra, el daemon Apache httpd no está sirviendo contenido inicialmente. (Esto se esperaba.) La observación de que httpd no estaba funcionando podía observarse de varias maneras, incluyendo:
- escriba
localhosten un navegador web en la misma máquina - escriba
curl localhosten el terminal en la misma máquina.
curl localhost
# curl: (7) Failed to connect to localhost port 80: Connection refused
Cuando los servicios wfsctl WebDAV se inician por primera vez, también se inicia httpd .
sudo wfsctl start
# ...
sudo wfsctl diagnose
# ... snip ...
# All httpd processes:
# COMM RUSER PPID PID STARTED
# httpd root 1 885 4:18PM
# httpd _www 885 890 4:18PM
No fue sorprendente que se haya iniciado un Apache httpd . Aunque, la configuración de línea de base de Apache httpd también comienza a servir los contenidos de / Library / WebServer / Documents además de y es independiente de cualquier recurso compartido de WebDAV. En particular, el contenido de index.html se devuelve a través de localhost en un navegador web o curl localhost en la aplicación de Terminal.
curl localhost --verbose
# * Connected to localhost (::1) port 80 (#0)
# > GET / HTTP/1.1
# > Host: localhost
# > User-Agent: curl/7.54.0
# > Accept: */*
# >
# < HTTP/1.1 200 OK
# < Server: Apache/2.4.28 (Unix) mod_secure_transport/2.4.27
# < Content-Location: index.html.en
# <html><body><h1>It works!</h1></body></html>
Finalmente, detenga los servicios WebDAV con sudo wfsctl stop , luego reinicie. Después de reiniciar, httpd aparentemente aún se está ejecutando:
# after 'sudo wfsctl stop' and system reboot ...
curl localhost
# <html><body><h1>It works!</h1></body></html>
sudo wfsctl status
# disabled
sudo wfsctl diagnose
# ...
# WFS is not enabled.
# ...
# All httpd processes:
# COMM RUSER PPID PID STARTED
# httpd root 1 85 6:12PM
# httpd _www 85 414 6:13PM
Nota al pie:
¿Es un comportamiento razonablemente esperado que sudo wfsctl stop no anula también el registro de httpd ?
¿Tal vez wfsctl presume que no interfiere con otros servicios con podría usarse para iniciar el servidor web httpd ? (Aunque, en mi caso de uso, httpd no se habilitó por ningún otro medio que no sea wfsctl .)