Sophie

Sophie

distrib > Mandriva > 8.2 > i586 > media > main-src > by-pkgid > 74eaa51ee3ca5b177900986fa7ad1c61 > files > 5

httpd-naat-0.8-3mdk.src.rpm

#!/bin/sh
#
# $Id: httpd-naat.init,v 1.1 2001/12/19 12:43:31 philippe Exp $
# Startup script for the Apache Web Server with NAAT configuration
#
# chkconfig: 345 85 15
# description: Network Appliance Administration Tool for Linux-Mandrake Server \
#  based on Apache Web Server.
#
# processname: httpd-naat
# pidfile: /var/run/httpd-naat.pid
# config: /etc/httpd/conf/httpd-naat.conf

# Source function library.
. /etc/rc.d/init.d/functions

unset LS_COLORS KDE_DISPLAY BROWSER HELP_BROWSER GTK_RC_FILES XMODIFIERS
unset COLORTERM DISPLAY LOGNAME SESSION_MANAGER KDE_INITIAL_DESKTOP
unset TERM HOME USERNAME PWD ENV USER 

# Configuration File
if [ ! -f /etc/sysconfig/httpd-naat ]; then
        CONF_FILE="-f /etc/httpd/conf/httpd-naat.conf"
fi

. /etc/sysconfig/httpd-naat


### Hacks for the broken MSEC
if [ -e /home/httpd ]; then chmod 0755 /home/httpd; fi
chown httpd-naat.admin /var/log/httpd-naat
chmod 750 /var/log/httpd-naat
###

### Hacks for the apache + proxified apache-mod_perl
if [ -x /usr/sbin/httpd-naat -a -x /usr/sbin/httpd-naat-perl ]; then 
	DEFINE="-DPERLPROXIED"
fi 
PERLFILE="-f /etc/httpd/conf/httpd-naat-perl.conf"
###

### Hack for bad hostname configuration
thehost=`hostname`
hostname -i 1>/dev/null 2>/dev/null|| hostname localhost
###

### Hack for Status
LYNX="lynx -dump"
STATUSURL="http://localhost/server-status"
STATUSURLPERL="http://localhost:8200/server-status"


# Change the major functions into functions.
moduleargs() {
	moduledir=/usr/lib/apache
	moduleargs=
	for module in ${moduledir}/*.so ; do
		if [ -x ${module} ] ; then
			module=`echo ${module} | awk '{
				gsub(".*/","");
				gsub("^mod_","");
				gsub("^lib","");
				gsub(".so$","");
				print toupper($0)}'`
			moduleargs="${moduleargs} -DHAVE_$module"
		fi
	done
	echo ${moduleargs}
}

# Get the extra modules so only the main server gets them
extramoduleargs() {
	extramoduledir=/usr/lib/apache-extramodules
	extramoduleargs=
	for extramodule in ${extramoduledir}/*.so ; do
		if [ -x ${extramodule} ] ; then
			extramodule=`echo ${extramodule} | awk '{
				gsub(".*/","");
				gsub("^mod_","");
				gsub("^lib","");
				gsub(".so$","");
				print toupper($0)}'`
			extramoduleargs="${extramoduleargs} -DHAVE_$extramodule" 
		fi
	done
	echo ${extramoduleargs}
}

### Hacks for the apache + proxified apache-mod_perl
# Assign all extra modules to both servers first
APACHEXMODS=`extramoduleargs`
PERLXMODS=`extramoduleargs`
COMMONMODS=`moduleargs`
	
## Hack for ApacheJServ that takes forever to shut down and restart
snooze() {
	for count in 1 2 3 4 5 6 7 8 9 ; do echo -n "."; sleep 1; done
	echo
}

conftest() {
	badconf=0
	if [ -x /usr/sbin/httpd-naat ]; then
		action "Checking configuration sanity for httpd-naat: " \
			/usr/sbin/httpd -t \
			$DEFINE $APACHEXMODS $COMMONMODS $CONF_FILE
		badconf=$?
	fi
	if [ -x /usr/sbin/httpd-naat-perl ]; then
		action "Checking configuration sanity for httpd-naat-perl: " \
			/usr/sbin/httpd-perl -t \
			$PERLFILE $DEFINE $PERLXMODS $COMMONMODS
		[ $badconf = 0 ] && badconf=$?
	fi
	return $badconf
}

start() {
	for tries in 1 2 3; do
	  if [ -x /usr/sbin/httpd-naat-perl -a ! -e /var/run/httpd-naat-perl.pid ]; then
		if [ $tries -eq 1 ]; then echo -n "Starting httpd-naat-perl: ";fi
		daemon httpd-naat-perl $PERLFILE $DEFINE $PERLXMODS $COMMONMODS
		echo
		for wait in 1 2 3 4 5;do
			if [ ! -e /var/run/httpd-naat-perl.pid ]; then sleep 1;fi
		done
	  fi
	  if [ -x /usr/sbin/httpd-naat -a ! -e /var/run/httpd-naat.pid ]; then 
		if [ $tries -eq 1 ]; then echo -n "Starting httpd-naat: ";fi
		daemon httpd-naat $DEFINE $APACHEXMODS $COMMONMODS $CONF_FILE
		echo
		for wait in 1 2 3 4 5;do
			if [ ! -e /var/run/httpd-naat.pid ]; then sleep 1;fi
		done
	  fi
	done
	touch /var/lock/subsys/httpd-naat
}

stop() {
	if [ -x /usr/sbin/httpd-naat-perl -a -e /var/run/httpd-naat-perl.pid ]; then 
		echo -n "Shutting down httpd-naat-perl: "
		killproc httpd-naat-perl
		echo
		rm -f /var/run/httpd-naat-perl.pid
	fi
	if [ -x /usr/sbin/httpd-naat  -a -e /var/run/httpd-naat.pid ]; then 
		echo -n "Shutting down httpd-naat: "
		killproc httpd-naat
		echo
		if [ -e /usr/lib/apache-extramodules/mod_jserv.so ]; then
			snooze
			while [ -e /var/run/httpd-naat.pid ]; do
				echo Trying harder
				snooze
				killproc httpd-naat
			done
		fi
		rm -f /var/run/httpd-naat.pid
	fi
	rm -f /var/lock/subsys/httpd-naat
}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  extendedstatus)
	$LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '	
	echo
	echo -n "#######################################"
	echo    "#######################################"
	if [ -x /usr/sbin/httpd-naat -a -x /usr/sbin/httpd-naat-perl ]; then
	  $LYNX $STATUSURLPERL | awk ' /process$/ { print; exit } { print } '	
	  echo
 	  echo -n "#######################################"
	  echo    "#######################################"
	fi
	;;
  status)
	echo
	if [ -e /var/run/httpd-naat.pid ]; then 
		echo "NAAT is running."
		echo "httpd-naat: `pidof httpd`"
		echo
	fi
	if [ -e /var/run/httpd-naat-perl.pid ]; then 
		echo "NAAT-mod_perl is running."
 		echo "httpd-naat-perl: `pidof httpd-perl`"
		echo
	fi
	if [ ! -e /var/run/httpd-naat.pid -a ! -e /var/run/httpd-naat-perl.pid ]; then	
		echo "httpd-naat is *not* running."
		echo
	fi
	echo "Use $0 extendedstatus for more information."
	echo
	;;
  restart)
	stop
	start
	;;
  update|condrestart)
	if [ -e /var/run/httpd-naat.pid -o -e /var/run/httpd-naat-perl.pid ]; then
		stop
		conftest || exit $?
		start
	fi
	;;
  reload|graceful)
	if [ -e /usr/lib/apache-extramodules/mod_jserv.so ]; then
		stop
		start
	else
		if [ -x /usr/sbin/httpd-naat -a -e /var/run/httpd-naat-perl.pid ]; then 
			echo -n "Reloading httpd-naat-perl: "
			killproc httpd-naat -USR1
			echo
		fi
		if [ -x /usr/sbin/httpd-naat -a -e /var/run/httpd-naat.pid ]; then 
			echo -n "Reloading httpd-naat: "
			killproc httpd-naat -USR1
			echo
		fi
	fi
	;;
  configtest)
	conftest
	exit $?
	;;
  *)
	echo "Usage: $0 {start|stop|restart|reload/graceful|update|configtest}"
	exit 1
esac

exit 0