#!/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