#!/bin/sh # start/stop the Apache www server PACKAGE=apache BASEDIR=/usr/local/packages/$PACKAGE CONTROLPROG="$BASEDIR/bin/apachectl" SERVER="$BASEDIR/bin/httpd" CONFIG="$BASEDIR/conf/httpd.conf" PIDFILE=`egrep -i '^PidFile' $CONFIG | cut -d\ -f2` test -x $SERVER || exit 1 test -f $CONFIG || exit 1 case "$1" in 'start') # Start Apache echo "starting Apache" $SERVER -f $CONFIG & ;; 'stop') # Stop Apache PID=`cat $PIDFILE` if [ ! -z "$PID" ] ; then echo "stopping Apache" /bin/kill ${PID} 1>/dev/null 2>&1 fi ;; 'restart') # Stop Apache PID=`cat $PIDFILE` if [ ! -z "$PID" ] ; then echo "restarting Apache" /bin/kill ${PID} 1>/dev/null 2>&1 echo "waiting for Apache to finish" while [ 1 ] do kill -0 ${PID} 2>/dev/null || break sleep 5 echo "still waiting..." done echo "Apache stopped. Apache will restart in 5 seconds" sleep 5 fi $SERVER -f $CONFIG & ;; 'graceful') PID=`cat $PIDFILE` if [ ! -z "$PID" ] then echo "Doing a graceful restart" /bin/kill -USR1 ${PID} else echo "Server was down, restarting" $SERVER -f $CONFIG & fi ;; 'configtest') $CONTROLPROG configtest ;; 'ensure-running') kill -0 `cat $PIDFILE` || $SERVER -f $CONFIG & ;; *) echo "Usage: httpd {start|stop|restart|ensure-running}" esac