#!/bin/sh # # Startup script for Tomcat 4.0, the Apache Servlet Engine # # chkconfig: - 80 20 # description: Tomcat 4.0 is the Apache Servlet Engine RI for Servlet 2.3/JSP 1.2 # processname: tomcat # pidfile: /var/run/tomcat4.pid # config: /etc/tomcat4/tomcat4.conf # # Gomez Henri # Keith Irwin # Nicolas Mailhot # # version 1.02 - Removed initlog support # version 1.03 - Removed config: # version 1.04 - tomcat will start before httpd and stop after httpd # version 1.05 - jdk hardcoded to link /usr/java/jdk and tomcat runs as "nobody" # version 1.06 - split up into script and config file # version 1.07 - Rework from Nicolas ideas # version 1.08 - Fix work dir permission at start time, switch to use tomcat4 # version 1.09 - Fix pidfile and config tags # version 1.10 - Fallback to su direct use on systems without Redhat/Mandrake init.d functions # version 1.11 - Fix webapps dir permissions # version 1.12 - remove initial start/stop level for chkconfig (- 80 20) # version 1.13 - remove chown of logs/work/temp/webapps dir, owned by tomcat4 at install time # version 1.14 - correct the start/stop ugly hack by waiting all the threads stops # version 1.15 - ensure we're looking for TOMCAT_USER running catalina # # Source function library. if [ -x /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions fi # Get Tomcat config TOMCAT_CFG="/etc/tomcat4/tomcat4.conf" [ -r "$TOMCAT_CFG" ] && . "${TOMCAT_CFG}" # Path to the tomcat launch script (direct don't use wrapper) TOMCAT_SCRIPT=/usr/bin/dtomcat4 # Tomcat name :) TOMCAT_PROG=tomcat4 # if TOMCAT_USER is not set, use tomcat4 like Apache HTTP server if [ -z "$TOMCAT_USER" ]; then TOMCAT_USER="tomcat4" fi # Since the daemon function will sandbox $tomcat # no environment stuff should be defined here anymore. # Please use the /etc/tomcat.conf file instead ; it will # be read by the $tomcat script RETVAL=0 # See how we were called. start() { echo -n "Starting $TOMCAT_PROG: " if [ -x /etc/rc.d/init.d/functions ]; then daemon --user $TOMCAT_USER $TOMCAT_SCRIPT start else su - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" fi RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat4 return $RETVAL } stop() { echo -n "Stopping $TOMCAT_PROG: " if [ -f /var/lock/subsys/tomcat4 ] ; then if [ -x /etc/rc.d/init.d/functions ]; then daemon --user $TOMCAT_USER $TOMCAT_SCRIPT stop else su - $TOMCAT_USER -c "$TOMCAT_SCRIPT stop" fi RETVAL=$? tc4run=1 until [ $tc4run = '0' ] do tc4run=`ps -aux | grep catalina | grep -v grep | grep $TOMCAT_USER -c` sleep 1 done rm -f /var/lock/subsys/tomcat4 /var/run/tomcat4.pid fi echo [ $RETVAL = 0 ] } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; condrestart) if [ -f /var/run/tomcat4.pid ] ; then stop start fi ;; *) echo "Usage: $TOMCAT_PROG {start|stop|restart|condrestart}" exit 1 esac exit $RETVAL