]> granicus.if.org Git - apache/blobdiff - support/apachectl.in
Merge r1772489, r1772504 from trunk:
[apache] / support / apachectl.in
index 136a81cacbd1094833577efca2208b2d70f82bc2..3281c2e6cd1c927b9b1832578536de9fdc516033 100644 (file)
@@ -1,12 +1,27 @@
 #!/bin/sh
 #
-# Copyright (c) 2000-2001 The Apache Software Foundation.
-# See license at the end of this file.
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 #
 # Apache control script designed to allow an easy command line interface
 # to controlling Apache.  Written by Marc Slemko, 1997/08/23
 # 
 # The exit codes returned are:
+#   XXX this doc is no longer correct now that the interesting
+#   XXX functions are handled by httpd
 #      0 - operation completed successfully
 #      1 - 
 #      2 - usage error
 # When multiple arguments are given, only the error from the _last_
 # one is reported.  Run "apachectl help" for usage info
 #
+ACMD="$1"
+ARGV="$@"
 #
 # |||||||||||||||||||| START CONFIGURATION SECTION  ||||||||||||||||||||
 # --------------------                              --------------------
 # 
-# the path to your PID file
-PIDFILE=@prefix@/logs/httpd.pid
-#
 # the path to your httpd binary, including options if necessary
-HTTPD='@prefix@/bin/httpd'
+HTTPD='@exp_sbindir@/@progname@'
+#
+# pick up any necessary environment variables
+if test -f @exp_sbindir@/envvars; then
+  . @exp_sbindir@/envvars
+fi
 #
 # a command that outputs a formatted text version of the HTML at the
 # url given on the command line.  Designed for lynx, however other
 # programs may work.  
-LYNX="lynx -dump"
+LYNX="@LYNX_PATH@ -dump"
 #
 # the URL to your server's mod_status status page.  If you do not
 # have one, then status and fullstatus will not work.
 STATUSURL="http://localhost:@PORT@/server-status"
 #
+# Set this variable to a command that increases the maximum
+# number of file descriptors allowed per child process. This is
+# critical for configurations that use many file descriptors,
+# such as mass vhosting, or a multithreaded server.
+ULIMIT_MAX_FILES="@APACHECTL_ULIMIT@"
 # --------------------                              --------------------
 # ||||||||||||||||||||   END CONFIGURATION SECTION  ||||||||||||||||||||
 
+# Set the maximum number of file descriptors allowed per child process.
+if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
+    $ULIMIT_MAX_FILES
+fi
+
 ERROR=0
-ARGV="$@"
 if [ "x$ARGV" = "x" ] ; then 
-    ARGS="help"
+    ARGV="-h"
 fi
 
-for ARG in $@ $ARGS
-do
-    # check for pidfile
-    if [ -f $PIDFILE ] ; then
-       PID=`cat $PIDFILE`
-       if [ "x$PID" != "x" ] && kill -0 $PID 2>/dev/null ; then
-           STATUS="httpd (pid $PID) running"
-           RUNNING=1
-       else
-           STATUS="httpd (pid $PID?) not running"
-           RUNNING=0
-       fi
-    else
-       STATUS="httpd (no pid file) not running"
-       RUNNING=0
-    fi
-
-    case $ARG in
-    start)
-       if [ $RUNNING -eq 1 ]; then
-           echo "$0 $ARG: httpd (pid $PID) already running"
-           continue
-       fi
-       if $HTTPD ; then
-           echo "$0 $ARG: httpd started"
-       else
-           echo "$0 $ARG: httpd could not be started"
-           ERROR=3
-       fi
-       ;;
-    stop)
-       if [ $RUNNING -eq 0 ]; then
-           echo "$0 $ARG: $STATUS"
-           continue
-       fi
-       if kill $PID ; then
-           echo "$0 $ARG: httpd stopped"
-       else
-           echo "$0 $ARG: httpd could not be stopped"
-           ERROR=4
-       fi
-       ;;
-    restart)
-       if [ $RUNNING -eq 0 ]; then
-           echo "$0 $ARG: httpd not running, trying to start"
-           if $HTTPD ; then
-               echo "$0 $ARG: httpd started"
-           else
-               echo "$0 $ARG: httpd could not be started"
-               ERROR=5
-           fi
-       else
-           if $HTTPD -t >/dev/null 2>&1; then
-               if kill -HUP $PID ; then
-                   echo "$0 $ARG: httpd restarted"
-               else
-                   echo "$0 $ARG: httpd could not be restarted"
-                   ERROR=6
-               fi
-           else
-               echo "$0 $ARG: configuration broken, ignoring restart"
-               echo "$0 $ARG: (run 'apachectl configtest' for details)"
-               ERROR=6
-           fi
-       fi
-       ;;
-    graceful)
-       if [ $RUNNING -eq 0 ]; then
-           echo "$0 $ARG: httpd not running, trying to start"
-           if $HTTPD ; then
-               echo "$0 $ARG: httpd started"
-           else
-               echo "$0 $ARG: httpd could not be started"
-               ERROR=5
-           fi
-       else
-           if $HTTPD -t >/dev/null 2>&1; then
-               if kill -WINCH $PID ; then
-                   echo "$0 $ARG: httpd gracefully restarted"
-               else
-                   echo "$0 $ARG: httpd could not be restarted"
-                   ERROR=7
-               fi
-           else
-               echo "$0 $ARG: configuration broken, ignoring restart"
-               echo "$0 $ARG: (run 'apachectl configtest' for details)"
-               ERROR=7
-           fi
-       fi
-       ;;
-    status)
-       $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
-       ;;
-    fullstatus)
-       $LYNX $STATUSURL
-       ;;
-    configtest)
-       if $HTTPD -t; then
-           :
-       else
-           ERROR=8
-       fi
-       ;;
-    *)
-       echo "usage: $0 (start|stop|restart|fullstatus|status|graceful|configtest|help)"
-       cat <<EOF
-
-start      - start httpd
-stop       - stop httpd
-restart    - restart httpd if running by sending a SIGHUP or start if 
-             not running
-fullstatus - dump a full status screen; requires lynx and mod_status enabled
-status     - dump a short status screen; requires lynx and mod_status enabled
-graceful   - do a graceful restart by sending a SIGWINCH or start if not running
-configtest - do a configuration syntax test
-help       - this screen
-
-EOF
-       ERROR=2
+case $ACMD in
+start|stop|restart|graceful|graceful-stop)
+    $HTTPD -k $ARGV
+    ERROR=$?
     ;;
-
-    esac
-
-done
+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
+    ERROR=$?
+    ;;
+status)
+    $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
+    ;;
+fullstatus)
+    $LYNX $STATUSURL
+    ;;
+*)
+    $HTTPD "$@"
+    ERROR=$?
+esac
 
 exit $ERROR
 
-# ====================================================================
-# The Apache Software License, Version 1.1
-#
-# Copyright (c) 2000-2001 The Apache Software Foundation.  All rights
-# reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in
-#    the documentation and/or other materials provided with the
-#    distribution.
-#
-# 3. The end-user documentation included with the redistribution,
-#    if any, must include the following acknowledgment:
-#       "This product includes software developed by the
-#        Apache Software Foundation (http://www.apache.org/)."
-#    Alternately, this acknowledgment may appear in the software itself,
-#    if and wherever such third-party acknowledgments normally appear.
-#
-# 4. The names "Apache" and "Apache Software Foundation" must
-#    not be used to endorse or promote products derived from this
-#    software without prior written permission. For written
-#    permission, please contact apache@apache.org.
-#
-# 5. Products derived from this software may not be called "Apache",
-#    nor may "Apache" appear in their name, without prior written
-#    permission of the Apache Software Foundation.
-#
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
-# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-# ====================================================================
-#
-# This software consists of voluntary contributions made by many
-# individuals on behalf of the Apache Software Foundation.  For more
-# information on the Apache Software Foundation, please see
-# <http://www.apache.org/>.
-#
-# Portions of this software are based upon public domain software
-# originally written at the National Center for Supercomputing Applications,
-# University of Illinois, Urbana-Champaign.
-#