Friday, October 2, 2009

Tomcat Startup Script

Here is my version of Tomcat startup script, which is partially based on neo220 and akadia scripts.  Please make sure TOMCAT_USER is the owner of CATALINA_HOME and CATALINA_PID folders.

/etc/sysconfig/tomcat
TOMCAT_USER=tomcat
JAVA_HOME=/usr/local/sun-jdk
JRE_HOME=/usr/local/sun-jre
#CATALINA_OPTS=
#JAVA_OPTS=
CATALINA_PID=/var/run/tomcat/tomcat.pid
CATALINA_TMPDIR=/var/tmp
#LOGGING_CONFIG=
#LOGGING_MANAGER=
TOMCAT_HOME=/usr/local/tomcat/bin
START_TOMCAT=$TOMCAT_HOME/startup.sh
STOP_TOMCAT=$TOMCAT_HOME/shutdown.sh

export TOMCAT_USER JAVA_HOME JRE_HOME CATALINA_OPTS JAVA_OPTS CATALINA_PID LOGGING_CONFIG LOGGING_MANAGER


/etc/init.d/tomcat
#!/bin/bash
# chkconfig: 345 20 80
# description: Tomcat Server basic start/shutdown script
# processname: tomcat

# pull in sysconfig settings
[ -f /etc/sysconfig/tomcat ] && . /etc/sysconfig/tomcat

start() {
       echo -n "Starting tomcat: "
       if [ -f $CATALINA_PID ]; then
              rm -f $CATALINA_PID  
       fi
       cd $TOMCAT_HOME
       su $TOMCAT_USER -c ${START_TOMCAT}
       echo "done."
}
stop() {
       echo -n "Shutting down tomcat: "
       cd $TOMCAT_HOME
       ${STOP_TOMCAT}
       rm -f $CATALINA_PID
       echo "done."
}
status() {
       if [ -f $CATALINA_PID ]; then
              x=$(ps -p `cat $CATALINA_PID` | wc -l)
              if [ $x == 2 ]; then
                     echo "Tomcat (pid `cat $CATALINA_PID`) is running..."
              else
                     echo "PID file exists, but tomcat appears to be not running..."
              fi
       else
              echo "Tomcat is not running..."
       fi
}

case "$1" in
start)
       start
       ;;
stop)
       stop
       status
       ;;
restart)
       stop
       sleep 10
       start
;;
status)
       status
       ;;
*)
       echo "Usage: $0 {start|stop|restart}"
esac
exit 0

Thanks,
VVK

No comments:

Post a Comment