mirror of
https://github.com/teddysun/lamp.git
synced 2026-04-06 20:58:57 +00:00
148 lines
4.9 KiB
Bash
148 lines
4.9 KiB
Bash
#!/bin/bash
|
|
# 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
|
|
|
|
#
|
|
# 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
|
|
#
|
|
ACMD="$1"
|
|
ARGV="$@"
|
|
#
|
|
# |||||||||||||||||||| START CONFIGURATION SECTION ||||||||||||||||||||
|
|
# -------------------- --------------------
|
|
#
|
|
# the path to your httpd binary, including options if necessary
|
|
apache_location=/usr/local/apache
|
|
HTTPD=${apache_location}/bin/httpd
|
|
#
|
|
# pick up any necessary environment variables
|
|
if test -f ${apache_location}/bin/envvars; then
|
|
. ${apache_location}/bin/envvars
|
|
fi
|
|
# the default pid file path
|
|
httpd_pid_file_path=${apache_location}/logs/httpd.pid
|
|
#
|
|
# 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:80/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="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 $ACMD in
|
|
start|stop|restart|graceful|graceful-stop)
|
|
$HTTPD -k $ARGV
|
|
ERROR=$?
|
|
;;
|
|
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)
|
|
# First, check to see if pid file exists
|
|
if test -s "$httpd_pid_file_path" ; then
|
|
read httpd_pid < "$httpd_pid_file_path"
|
|
if kill -0 $httpd_pid 2>/dev/null ; then
|
|
echo "httpd (pid $httpd_pid) is running"
|
|
ERROR=0
|
|
else
|
|
echo "httpd is not running, but PID file ($httpd_pid_file_path) exists"
|
|
ERROR=1
|
|
fi
|
|
else
|
|
# Try to find appropriate httpd process
|
|
httpd_pid=$(pidof httpd)
|
|
# test if multiple pids exist
|
|
pid_count=$(echo $httpd_pid | wc -w)
|
|
if test $pid_count -gt 1 ; then
|
|
echo "httpd is running but PID file ($httpd_pid_file_path) could not be found"
|
|
ERROR=4
|
|
elif test -z $httpd_pid ; then
|
|
echo "httpd is not running"
|
|
ERROR=3
|
|
fi
|
|
fi
|
|
;;
|
|
fullstatus)
|
|
$LYNX $STATUSURL
|
|
;;
|
|
*)
|
|
echo $"Usage: $0 {start|stop|restart|graceful|graceful-stop|configtest|status|fullstatus}"
|
|
ERROR=1
|
|
;;
|
|
esac
|
|
|
|
exit $ERROR
|