Created
June 8, 2013 08:38
-
-
Save newphp/5734540 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Startup script for the Apache Web Server | |
# | |
# chkconfig: - 85 15 | |
# description: Apache is a World Wide Web server. It is used to serve \ | |
# HTML files and CGI. | |
# processname: httpd | |
# pidfile: /usr/local/apache/logs/httpd.pid | |
# config: /usr/local/apache/conf/httpd.conf | |
ulimit -n 1024 | |
ulimit -n 4096 | |
ulimit -n 8192 | |
ulimit -n 16384 | |
ulimit -n 32768 | |
# Source function library. | |
. /etc/rc.d/init.d/functions | |
# This will prevent initlog from swallowing up a pass-phrase prompt if | |
# mod_ssl needs a pass-phrase from the user. | |
INITLOG_ARGS="" | |
# Path to the apachectl script, server binary, and short-form for messages. | |
apachectl=/usr/local/apache/bin/apachectl | |
httpd=/usr/local/apache/bin/httpd | |
prog=httpd | |
RETVAL=0 | |
ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin LC_MESSAGES=en_US" | |
# | |
# pick up any necessary environment variables | |
if test -f /usr/local/apache/bin/envvars; then | |
. /usr/local/apache/bin/envvars | |
fi | |
# The semantics of these two functions differ from the way apachectl does | |
# things -- attempting to start while running is a failure, and shutdown | |
# when not running is also a failure. So we just do it the way init scripts | |
# are expected to behave here. | |
start() { | |
echo -n $"Starting $prog: " | |
daemon $ENV $httpd -k start | |
RETVAL=$? | |
echo | |
[ $RETVAL = 0 ] && touch /usr/local/apache/logs/httpd.lock | |
return $RETVAL | |
} | |
stop() { | |
echo -n $"Stopping $prog: " | |
killproc $httpd | |
RETVAL=$? | |
echo | |
[ $RETVAL = 0 ] && rm -f /usr/local/apache/logs/httpd.lock /usr/local/apache/logs/httpd.pid | |
} | |
waitforexit() { | |
count=${2:-30} | |
while [ 0$count -gt 0 ] | |
do | |
PIDS=`ps -C$prog --no-heading e | grep $httpd` || break | |
PIDS=`echo "$PIDS" | awk '{print $1}' | tr '\n' ' '` | |
echo Remaining processes: $PIDS | |
stop | |
sleep 2 | |
count=`expr $count - 1` | |
done | |
if [ 0$count -eq 0 ]; | |
then | |
echo Remaining processes: $PIDS | |
return 1 | |
fi | |
return 0 | |
} | |
reload() { | |
echo -n $"Reloading $prog: " | |
killproc $httpd -HUP | |
RETVAL=$? | |
echo | |
} | |
# See how we were called. | |
case "$1" in | |
start) | |
start | |
;; | |
stop) | |
stop | |
;; | |
restart) | |
stop | |
waitforexit "httpd" 20 | |
start | |
;; | |
condrestart) | |
if [ -f /usr/local/apache/logs/httpd.pid ] ; then | |
stop | |
start | |
fi | |
;; | |
reload) | |
reload | |
;; | |
graceful|help|configtest|status|fullstatus) | |
$apachectl $@ | |
RETVAL=$? | |
;; | |
*) | |
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" | |
exit 1 | |
esac | |
exit $RETVAL |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment