#!/bin/sh # # Apache control script designed to allow an # easy command line interface to controlling # Apache. Written by Marc Slemko, 1997/08/23 # This file modified for easier reading on # the Sharp Zaurus by Stefan Johnson, # 2002/07/19. # # The exit codes returned are: # 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 # 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. # # #|||||||| START CONFIGURATION SECTION |||||||| #-------- -------- # # the path to your PID file #PIDFILE=/var/run/httpd.pid #PIDFILE=/mnt/card/www/logs/httpd.pid #PIDFILE=/mnt/cf/www/logs/httpd.pid #PIDFILE=/home/www/logs/httpd.pid # # # the path to your httpd binary, including # options if necessary #HTTPD=/usr/sbin/httpd #HTTPD=/mnt/card/www/bin/httpd #HTTPD=/mnt/cf/www/bin/httpd #HTTPD=/home/www/bin/httpd # # # 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/server-status" # #--------- --------- #||||||||| END CONFIGURATION SECTION ||||||||| ERROR=0 ARGV="$@" if [ "x$ARGV" = "x" ] ; then ARGS="help" fi for ARG in $@ $ARGS do # check for pidfile if [ -f $PIDFILE ] ; then PID=`cat $PIDFILE` if [ "x$PID" != "x" ] && kill -0 $PID 2>/dev/null ; then STATUS="httpd (pid $PID) running" RUNNING=1 else STATUS="httpd (pid $PID?) not running" RUNNING=0 fi else STATUS="httpd (no pid file) not running" RUNNING=0 fi case $ARG in start) if [ $RUNNING -eq 1 ]; then echo "$0 $ARG: httpd (pid $PID) already running" continue fi if $HTTPD ; then echo "$0 $ARG: httpd started" else echo "$0 $ARG: httpd could not be started" ERROR=3 fi ;; startssl|sslstart|start-SSL) if [ $RUNNING -eq 1 ]; then echo "$0 $ARG: httpd (pid $PID) already running" continue fi if $HTTPD -DSSL; then echo "$0 $ARG: httpd started" else echo "$0 $ARG: httpd could not be started" ERROR=3 fi ;; stop) if [ $RUNNING -eq 0 ]; then echo "$0 $ARG: $STATUS" continue fi if kill $PID ; then echo "$0 $ARG: httpd stopped" else echo "$0 $ARG: httpd could not be stopped" ERROR=4 fi ;; restart) if [ $RUNNING -eq 0 ]; then echo "$0 $ARG: httpd not running, trying to start" if $HTTPD ; then echo "$0 $ARG: httpd started" else echo "$0 $ARG: httpd could not be started" ERROR=5 fi else if $HTTPD -t >/dev/null 2>&1; then if kill -HUP $PID ; then echo "$0 $ARG: httpd restarted" else echo "$0 $ARG: httpd could not be restarted" ERROR=6 fi else echo "$0 $ARG: configuration broken, ignoring restart" echo "$0 $ARG: (run 'apachectl configtest' for details)" ERROR=6 fi fi ;; graceful) if [ $RUNNING -eq 0 ]; then echo "$0 $ARG: httpd not running, trying to start" if $HTTPD ; then echo "$0 $ARG: httpd started" else echo "$0 $ARG: httpd could not be started" ERROR=5 fi else if $HTTPD -t >/dev/null 2>&1; then if kill -USR1 $PID ; then echo "$0 $ARG: httpd gracefully restarted" else echo "$0 $ARG: httpd could not be restarted" ERROR=7 fi else echo "$0 $ARG: configuration broken, ignoring restart" echo "$0 $ARG: (run 'apachectl configtest' for details)" ERROR=7 fi fi ;; status) $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } ' ;; fullstatus) $LYNX $STATUSURL ;; configtest) if $HTTPD -t; then : else ERROR=8 fi ;; *) echo "usage: $0 (start|stop|restart|fullstatus|status|graceful|configtest|help)" cat <. ## ## Portions of this software are based upon ## public domain software originally written ## at the National Center for Supercomputing ## Applications, University of Illinois, ## Urbana-Champaign. ## #