2 votos

¿Cómo anular el registro de "httpd" después de "wfsctl stop"?

¿Cómo se anula correctamente el registro? httpd para que no se inicie en el reinicio después de un sudo wfsctl start y posterior sudo wfsctl stop ?

Antecedentes:

wfsctl es una "utilidad de control de intercambio de archivos WebDAV" lanzada con MacOS High Sierra. wfsctl se encuentra en /usr/sbin/wfsctl .

En mi caso, tras una instalación inicial de macOS High Sierra, el Apache httpd el demonio no está sirviendo inicialmente el contenido. (Esto era de esperar.) La observación de que httpd no estaba sirviendo podría observarse de varias maneras, incluyendo:

  • tipo localhost en un navegador web en la misma máquina
  • tipo curl localhost en el terminal de la misma máquina.

    curl localhost

    curl: (7) Failed to connect to localhost port 80: Connection refused

Cuando el wfsctl Los servicios de WebDAV se inician por primera vez, luego httpd también se pone en marcha.

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 era de extrañar que un apache httpd se puso en marcha. Aunque, la línea de base de Apache httpd también empieza a servir el contenido de /Library/WebServer/Documents además de y separado de cualquier recurso compartido de WebDAV. En particular, index.html el contenido se devuelve a través de localhost en un navegador web o curl localhost en la aplicación 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>

Por último, detenga los servicios WebDAV con sudo wfsctl stop y luego reiniciar. Después de reiniciar, httpd aparentemente sigue funcionando:

# 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 a pie de página: ¿Es un comportamiento razonablemente esperado que sudo wfsctl stop no se anula también el registro httpd ?

Quizás wfsctl presume de no interferir con otros servicios con puede para iniciar el httpd ¿Servidor web? (Aunque, en mi caso de uso, httpd no se habilitó a través de ningún otro medio que wfsctl .)

1voto

l --marc l Puntos 122

Como se indica en la pregunta, sudo wfsctl stop no se detiene y anula el registro del httpd proceso. Sin embargo, el httpd los demonios se detienen y se reinician. También, httpd permanece registrado para iniciarse en el siguiente (re)arranque.

sudo wfsctl diagnose
# All httpd processes:
# COMM   RUSER   PPID   PID STARTED
# httpd  root       1   325  8:46PM
# httpd  _www     325   331  8:46PM
sudo wfsctl stop
sudo wfsctl diagnose
# All httpd processes:
# COMM    RUSER  PPID   PID STARTED
# httpd   root      1   399 10:19PM
# httpd   _www    399   403 10:19PM

El man wfsctl menciona que el uso de httpd-wrapper es preferible al uso de apachectl y httpd (al menos para el -t bandera de prueba).

El archivo de configuración de Apache para la compartición de archivos WebDAV está parametrizado, y el servidor httpd está gestionado por el comando httpd-wrapper que pasa los parámetros a httpd . Esto es normalmente transparente, pero tenga en cuenta que para comprobar la sintaxis del archivo de configuración de Apache, no utilice apachectl configtest o httpd -t . En su lugar, utilice httpd-wrapper -t .

En general, las opciones mostradas en el man httpd se puede pasar a la página /usr/sbin/httpd-wrapper ruby script. La mayoría de las opciones funcionan como se espera.

Sin embargo, sudo httpd-wrapper -k graceful-stop se comporta como un reset que reinicia el httpd demonios y hojas httpd registrado para que se inicie cuando el sistema vuelva a arrancar.

Finalmente, sudo apachectl graceful-stop para detener y anular el registro de la httpd procesos.

Así, la siguiente secuencia de comandos detendrá tanto el wfsctl El uso compartido de WebDAV y el httpd daemons en el actual High Sierra.

sudo wfsctl stop
# Unloaded and removed: org.apache.httpd.webdavfilesharing.username-275.49176.plist
sudo apachectl graceful-stop
# verify
sudo wfsctl diagnose

Ver "Cómo configurar wfsctl WebDAV para utilizar con una aplicación que utiliza la autenticación básica?" para un ejemplo más completo de WebDAV.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X