mirror of
https://github.com/apache/httpd.git
synced 2025-08-13 14:40:20 +00:00

it when we install everything else. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86436 13f79535-47bb-0310-9956-ffa450edef68
235 lines
7.0 KiB
Bash
235 lines
7.0 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2000 The Apache Software Foundation.
|
|
# See license at the end of this file.
|
|
#
|
|
# 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:
|
|
# 0 - operation completed successfully
|
|
# 1 -
|
|
# 2 - usage error
|
|
# 3 - httpd could not be started
|
|
# 4 - httpd could not be stopped
|
|
# 5 - httpd could not be started during a restart
|
|
# 6 - httpd could not be restarted during a restart
|
|
# 7 - httpd could not be restarted during a graceful restart
|
|
# 8 - configuration syntax error
|
|
#
|
|
# When multiple arguments are given, only the error from the _last_
|
|
# one is reported. Run "apachectl help" for usage info
|
|
#
|
|
#
|
|
# |||||||||||||||||||| 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'
|
|
#
|
|
# 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"
|
|
#
|
|
# 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"
|
|
#
|
|
# -------------------- --------------------
|
|
# |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
|
|
|
|
ERROR=0
|
|
ARGV="$@"
|
|
if [ "x$ARGV" = "x" ] ; then
|
|
ARGS="help"
|
|
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
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
exit $ERROR
|
|
|
|
# ====================================================================
|
|
# The Apache Software License, Version 1.1
|
|
#
|
|
# Copyright (c) 2000 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.
|
|
#
|