簡単な答えはノーです。
'apachectl'プログラムは実際には単なるシェルスクリプトであるため、(これを認識した後)それが何をしているのか、そしてなぜそれが私が期待したことをしていないのかを簡単に確認できます。
MacでApacheを(正常にまたはその他の方法で)再起動すると、関連するlaunchctlジョブがアンロードされて再ロードされます。これは、Apacheの正式な再起動の説明とは異なると思います。
USR1またはグレースフルシグナルにより、親プロセスは、現在の要求の後に終了するように(または、何も提供していない場合はすぐに終了するように)子にアドバイスします。
apachectl -S
構成された仮想サーバーが表示されない理由は、このコマンドがlaunchctlによって実行されないため、/ System / Library / LaunchDaemons/org.apache.httpd.plistに設定されている環境変数がロードされないためです。
したがって、、apachectl graceful
およびapachectl restart
その他は適切な変数をロードするため、構成ファイルを適切に読み取りますが、デフォルトですべてのコマンドがロードするわけではありません。
これを克服するために、以下のように/ usr / sbin/apachectlを手動で編集しました。必要に応じて「-DMACOSXSERVER-DWEBSERVICE_ON」を追加するだけでした。
case $ARGV in
start)
run_launchctl load -w $LAUNCHD_JOB
ERROR=$?
;;
stop|graceful-stop)
run_launchctl unload -w $LAUNCHD_JOB
ERROR=$?
;;
restart|graceful)
run_launchctl unload -w $LAUNCHD_JOB 2> /dev/null
run_launchctl load -w $LAUNCHD_JOB
ERROR=$?
;;
startssl|sslstart|start-SSL)
echo The startssl option is no longer supported.
echo Please edit httpd.conf to include the SSL configuration settings
echo and then use "apachectl start".
ERROR=2
;;
configtest)
$HTTPD -t -D MACOSXSERVER -D WEBSERVICE_ON
ERROR=$?
;;
status|fullstatus)
echo Go to $STATUSURL in the web browser of your choice.
echo Note that mod_status must be enabled for this to work.
;;
*)
$HTTPD $ARGV -D MACOSXSERVER -D WEBSERVICE_ON
ERROR=$?
esac