#!/bin/sh # # Copyright (c) 2000-2002 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 # Last Update: $Id$ the eisfair team, team(at)eisfair(dot)org # # 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 # 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 # ARGV="$@" # # |||||||||||||||||||| START CONFIGURATION SECTION |||||||||||||||||||| # -------------------- -------------------- # # the path to your httpd binary, including options if necessary HTTPD='/usr/local/apache2/bin/apachectl' # # 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="ulimit -S -n `ulimit -H -n`" # -------------------- -------------------- # |||||||||||||||||||| END CONFIGURATION SECTION |||||||||||||||||||| . /var/install/include/eislib . /etc/config.d/apache2 . /usr/local/apache2/conf/APACHE2 # Set the maximum number of file descriptors allowed per child process. if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then $ULIMIT_MAX_FILES fi log_end_msg () { #local COLUMNS=$(tput cols || echo 80) #RES_COL=`expr $COLUMNS - 7` #echo -en "\\033[${RES_COL}G" if [ "$1" -eq 0 ] then mecho --ok else mecho --fail fi } log_failure_msg () { mecho -error "$@" } ### ------------------------------------------------------------------------- ### cache clean system ### ------------------------------------------------------------------------- HTCACHECLEAN_SIZE=300M HTCACHECLEAN_DAEMON_INTERVAL=120 HTCACHECLEAN_PATH=/var/lib/apache/diskcache HTCACHECLEAN_OPTIONS="-n" start_htcacheclean() { [ -e /etc/apache2/mods-enabled/disk_cache.load ] || return mkdir -p $HTCACHECLEAN_PATH chown ${APACHE2_USERNAME}:${APACHE2_GROUPNAME} $HTCACHECLEAN_PATH /usr/local/apache2/bin/htcacheclean $HTCACHECLEAN_OPTIONS \ -d$HTCACHECLEAN_DAEMON_INTERVAL \ -i -p$HTCACHECLEAN_PATH \ -l$HTCACHECLEAN_SIZE } stop_htcacheclean() { killall -q -w htcacheclean >/dev/null 2>&1 } ### ------------------------------------------------------------------------- check_pid () { if [ -f /run/httpd.pid ] then mecho "But PID exists (perhaps due to crash). Deleting..." rm /run/httpd.pid fi } ERROR=0 if [ "x$ARGV" = "x" ] ; then ARGV="-h" fi if ps ax | grep "/usr/local/apache2/bin/httpd" | grep -v -q grep then running="yes" else running="no" fi case $ARGV in start|forcestart) if [ "$ARGV" = "forcestart" ] then # force start of package START_APACHE2="yes" fi if [ "$START_APACHE2" != "yes" ] then mecho --error "Skipping start of apache2 because START_APACHE2 is set to 'no'" mecho "If you want to start apache2 manually, use parameter " mecho "'forcestart' instead of 'start' with the init script" exit 1 fi if [ "$running" = "yes" ] then mecho " * Apache is already running!" else mecho " * Starting Apache ..." $HTTPD start ERROR=$? fi start_htcacheclean if [ ! $ERROR ] then log_end_msg 1 else log_end_msg 0 fi ;; stop) if [ "$running" = "no" ] then mecho " * Apache isn't running!" check_pid else mecho " * Stopping Apache ..." $HTTPD stop ERROR=$? fi stop_htcacheclean if [ ! $ERROR ] then log_end_msg 1 else log_end_msg 0 fi ;; status) if [ "$running" = "yes" ] then mecho --info "Apache is running with pid: `cat /run/httpd.pid`" else mecho --info "Apache is not running" check_pid fi ;; restart) if [ "$START_APACHE2" = "yes" ] then mecho " * Restarting Apache ..." stop_htcacheclean $HTTPD graceful ERROR=$? start_htcacheclean if [ ! $ERROR ] then log_end_msg 1 else log_end_msg 0 fi fi ;; configtest) $HTTPD -t ERROR=$? if [ ! $ERROR ] then log_end_msg 1 else log_end_msg 0 fi ;; *) mecho "Usage: $0 {start|forcestart|stop|restart}" ;; esac exit $ERROR # ==================================================================== # The Apache Software License, Version 1.1 # # Copyright (c) 2000-2003 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 # . # # Portions of this software are based upon public domain software # originally written at the National Center for Supercomputing Applications, # University of Illinois, Urbana-Champaign. #