httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Slemko <m...@hyperreal.org>
Subject cvs commit: apachen/src/support apachectl
Date Fri, 05 Sep 1997 00:00:04 GMT
marc        97/09/04 16:59:41

  Added:       src/support apachectl
  Log:
  Add apachectl script for controlling Apache in a way similar to ndc.
  Written from scratch after scanning ndc.
  
  Reviewed by:	Dean Gaudet, Randy Terbush, Paul Sutton, Jim Jagielski
  
  Revision  Changes    Path
  1.1                  apachen/src/support/apachectl
  
  Index: apachectl
  ===================================================================
  #!/bin/sh
  #
  # 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
  #
  # 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=/usr/local/etc/httpd/logs/httpd.pid
  #
  # the path to your httpd binary
  HTTPD=/usr/local/etc/httpd/src/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/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`
  	PS=`ps -p $PID | tail -1 | grep $PID`
  	if [ "x$PS" = "x" ]; then
  	    STATUS="httpd (pid $PID?) not running"
  	    RUNNING=0
  	else
  	    STATUS="httpd (pid $PID) running"
  	    RUNNING=1
  	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 kill -HUP $PID ; then
  		echo "$0 $ARG: httpd restarted"
  	    else
  		echo "$0 $ARG: httpd could not be restarted"
  		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 kill -USR1 $PID ; then
  		echo "$0 $ARG: httpd gracefully restarted"
  	    else
  		echo "$0 $ARG: httpd could not be restarted"
  		ERROR=7
  	    fi
  	fi
  	;;
      status)
  	$LYNX $STATUSURL | awk '  { if (/current process/) { print; exit } else print } '
  	;;
      fullstatus)
  	$LYNX $STATUSURL
  	;;
      *)
  	echo "usage: $0 (start|stop|restart|fullstatus|status|graceful|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 SIGUSR1 or start if not running
  help       - this screen
  
  EOF
  	ERROR=2
      ;;
  
      esac
  
  done
  
  exit $ERROR
  
  # ====================================================================
  # Copyright (c) 1995-1997 The Apache Group.  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. All advertising materials mentioning features or use of this
  #    software must display the following acknowledgment:
  #    "This product includes software developed by the Apache Group
  #    for use in the Apache HTTP server project (http://www.apache.org/)."
  # 
  # 4. The names "Apache Server" and "Apache Group" must not be used to
  #    endorse or promote products derived from this software without
  #    prior written permission.
  # 
  # 5. Redistributions of any form whatsoever must retain the following
  #    acknowledgment:
  #    "This product includes software developed by the Apache Group
  #    for use in the Apache HTTP server project (http://www.apache.org/)."
  # 
  # THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``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 GROUP 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 Group and was originally based
  # on public domain software written at the National Center for
  # Supercomputing Applications, University of Illinois, Urbana-Champaign.
  # For more information on the Apache Group and the Apache HTTP server
  # project, please see <http://www.apache.org/>.
  # 
  
  
  

Mime
View raw message