Tomcat startup script
You know this situation where you install tomcat in “some location” with “some user” being able to stop and start it? Not going the official (linux) way and installing it through your package manager?
So I have made a small script, on Solaris, to have stop and start functionality in those locations for that special user (in my case dmtomcat):
# tomcat stop und start Skript # # Some things that run always set -e NAME=tomcat TOMCAT_TIMEOUT=60 TOMCAT_USER=dmtomcat # Directory where the Tomcat 6 binary distribution resides CATALINA_HOME=/opt/tomcat/current # Define other required variables export CATALINA_PID="$CATALINA_HOME/temp/$NAME.pid" CATALINA_SH="$CATALINA_HOME/bin/catalina.sh" # Escape any double quotes in the value of JAVA_OPTS JAVA_OPTS="$(echo $JAVA_OPTS | sed 's/\"/\\\"/g')" if [ `/usr/xpg4/bin/id -u` -ne `/usr/xpg4/bin/id -u $TOMCAT_USER` ]; then echo "You need to be" $TOMCAT_USER "to run this script" exit 1 fi # Carry out specific functions when asked to by the system case "$1" in start) # Test to see whether tomcat is already running if [ -f "$CATALINA_PID" ]; then # We have a pid file, not good, do some sanity PID=`exec cat $CATALINA_PID` PID_USER=`ps -ef | grep $PID | grep tomcatjava | awk '{ print $1}'` # Is the pid assigned to the tomcat user and using tomcatjava? if [ "X"$PID_USER == "X"$TOMCAT_USER ]; then echo "It seems that tomcat is already running with pid" $PID exit 1 fi # PID file was there but the above sanity check failed # So we can remove the PID file rm $CATALINA_PID fi if [ "$2" == "clean" ]; then echo "** Cleaning tomcat work directory" rm -rf $CATALINA_HOME/work/catalina/localhost fi echo "** Starting tomcat service..." $CATALINA_SH start echo "All done. Please enter 'tailout' to monitor the startup process" ;; stop) echo "** Stopping tomcat service..." echo "** Will take" $TOMCAT_TIMEOUT "seconds" $CATALINA_SH stop $TOMCAT_TIMEOUT -force ;; restart) echo "** Stopping tomcat service..." echo "** Will take" $TOMCAT_TIMEOUT "seconds" $CATALINA_SH stop $TOMCAT_TIMEOUT -force if [ "$2" == "clean" ]; then echo "** Cleaning tomcat work directory" rm -rf $CATALINA_HOME/work/catalina/localhost fi echo "** Starting tomcat service..." $CATALINA_SH start echo "All done. Please enter 'tailout' to monitor the startup process" ;; *) echo "Usage: tomcat-service {start|stop|restart} [clean]" echo echo " If the clean option is provided the tomcat work" echo " directory will be cleaned before starting the service" exit 1 ;; esac exit 0