#!/bin/sh
# Startup script for the Apache Web Server
# chkconfig: 345 85 15
# Description: Startup script for Apache webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f httpd defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add httpd'

### BEGIN INIT INFO
# Provides:          httpd
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts Apache Web Server
# Description:       starts Apache Web Server
### END INIT INFO

# Author:   licess
# website:  https://lnmp.org
#
# 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
#    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/apache/bin/httpd'
PID='/usr/local/apache/logs/httpd.pid'
#
# pick up any necessary environment variables
if test -f /usr/local/apache/bin/envvars; then
  . /usr/local/apache/bin/envvars
fi

ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"
# --------------------                              --------------------
# ||||||||||||||||||||   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
if [ "x$ARGV" = "x" ] ; then 
    ARGV="-h"
fi

case $ARGV in
    start|stop|restart|graceful|graceful-stop)
        echo -n "$ARGV apache... "
        $HTTPD -k $ARGV
        if [ "$?" != 0 ] ; then
            echo " failed"
        else
            echo " done"
        fi
        ;;
    configtest)
        echo -n "test apache configure... "
        $HTTPD -t
        if [ "$?" != 0 ] ; then
            echo " failed"
        else
            echo " done"
        fi
        ;;
    status)
        if [ -f "$PID" ]; then  
            echo "Apache is running."
        else
            echo "Apache is stopped."
        fi 
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|graceful|graceful-stop|configtest|status}"
        ;;
esac
