apachectl.diff   [plain text]


--- docs/man/apachectl.8.orig	2005-09-20 07:54:17.000000000 -0700
+++ docs/man/apachectl.8	2008-07-15 13:09:46.000000000 -0700
@@ -62,13 +62,13 @@
  
 .TP
 start
-Start the Apache httpd daemon\&. Gives an error if it is already running\&. This is equivalent to apachectl -k start\&.  
+Loads the org\&.apache\&.httpd launchd job\&.
 .TP
-stop
-Stops the Apache httpd daemon\&. This is equivalent to apachectl -k stop\&.  
+stop, graceful-stop
+Unloads the org\&.apache\&.httpd launchd job\&.
 .TP
-restart
-Restarts the Apache httpd daemon\&. If the daemon is not running, it is started\&. This command automatically checks the configuration files as in configtest before initiating the restart to make sure the daemon doesn't die\&. This is equivalent to apachectl -k restart\&.  
+restart, graceful
+Unloads, then loads the org\&.apache\&.httpd launchd job\&.
 .TP
 fullstatus
 Displays a full status report from mod_status\&. For this to work, you need to have mod_status enabled on your server and a text-based browser such as lynx available on your system\&. The URL used to access the status report can be set by editing the STATUSURL variable in the script\&.  
@@ -76,12 +76,6 @@
 status
 Displays a brief status report\&. Similar to the fullstatus option, except that the list of requests currently being served is omitted\&.  
 .TP
-graceful
-Gracefully restarts the Apache httpd daemon\&. If the daemon is not running, it is started\&. This differs from a normal restart in that currently open connections are not aborted\&. A side effect is that old log files will not be closed immediately\&. This means that if used in a log rotation script, a substantial delay may be necessary to ensure that the old log files are closed before processing them\&. This command automatically checks the configuration files as in configtest before initiating the restart to make sure Apache doesn't die\&. This is equivalent to apachectl -k graceful\&.  
-.TP
-graceful-stop
-Gracefully stops the Apache httpd daemon\&. This differs from a normal stop in that currently open connections are not aborted\&. A side effect is that old log files will not be closed immediately\&. This is equivalent to apachectl -k graceful-stop\&.  
-.TP
 configtest
 Run a configuration file syntax test\&. It parses the configuration files and either reports Syntax Ok or detailed information about the particular syntax error\&. This is equivalent to apachectl -t\&.  
  
--- support/apachectl.in.orig	2006-07-11 20:38:44.000000000 -0700
+++ support/apachectl.in	2008-07-15 13:21:50.000000000 -0700
@@ -65,6 +65,18 @@
 # --------------------                              --------------------
 # ||||||||||||||||||||   END CONFIGURATION SECTION  ||||||||||||||||||||
 
+LAUNCHCTL="/bin/launchctl"
+LAUNCHD_JOB="/System/Library/LaunchDaemons/org.apache.httpd.plist"
+
+run_launchctl() {
+    if [ $UID != 0 ]; then
+        echo This operation requires root.
+        exit 1
+    fi
+
+    $LAUNCHCTL $@
+}
+
 # Set the maximum number of file descriptors allowed per child process.
 if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
     $ULIMIT_MAX_FILES
@@ -76,8 +88,17 @@
 fi
 
 case $ARGV in
-start|stop|restart|graceful|graceful-stop)
-    $HTTPD -k $ARGV
+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)
@@ -90,11 +111,9 @@
     $HTTPD -t
     ERROR=$?
     ;;
-status)
-    $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
-    ;;
-fullstatus)
-    $LYNX $STATUSURL
+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