Come si può correttamente annullare la registrazione di httpd
dal riavvio al riavvio dopo un sudo wfsctl start
e successivi sudo wfsctl stop
?
Sfondo:
wfsctl
è una "utility di controllo per la condivisione di file WebDAV" rilasciata con macOS High Sierra. wfsctl
si trova in /usr/sbin/wfsctl
.
Nel mio caso, dopo un'installazione iniziale di macOS High Sierra, il daemon di apache httpd
non sta inizialmente servendo il contenuto. (Questo era previsto). L'osservazione che httpd non stava servendo poteva essere osservata in vari modi, tra cui:
- digita
localhost
in un browser web sulla stessa macchina - digita
curl localhost
nel terminale sulla stessa macchina.
curl localhost
# curl: (7) Failed to connect to localhost port 80: Connection refused
Quando i servizi WebDAV wfsctl
vengono avviati per la prima volta, viene avviato anche 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
Non è sorprendente che sia stato avviato un% co_de di Apache. Sebbene, la configurazione di base Apache httpd
inizi anche a servire i contenuti di / Library / WebServer / Documents in aggiunta e separati da qualsiasi condivisione WebDAV. In particolare, il contenuto di httpd
viene restituito tramite index.html
in un browser Web o localhost
nell'applicazione Terminale.
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>
Infine, interrompi i servizi WebDAV con curl localhost
, quindi riavvia. Dopo il riavvio, sudo wfsctl stop
apparentemente è ancora in esecuzione:
# 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:
È un comportamento ragionevolmente previsto che httpd
non cancelli anche sudo wfsctl stop
?
Forse httpd
presume di non interferire con altri servizi con potrebbe essere utilizzato per avviare il server web wfsctl
? (Anche se, nel mio caso d'uso, httpd
non è stato abilitato con altri mezzi rispetto a httpd
.)