Runing Tomcat as Linux service
Feb 6th, 2007 by robert
Not big deal but I am bit tired to google for this script each time I setup new box. Now I know where to get it without spending two valuable extra minutes to google. First create /etc/rc.d/init.d/tomcatd :
CODE:
-
#!/bin/bash
-
#
-
# Startup script for Tomcat
-
#
-
# chkconfig: 345 84 16
-
# description: Tomcat jakarta JSP server
-
TOMCAT_HOME=/opt/tomcat
-
TOMCAT_START=$TOMCAT_HOME/bin/startup.sh
-
TOMCAT_STOP=$TOMCAT_HOME/bin/shutdown.sh
-
#Necessary environment variables
-
export JAVA_HOME=/opt/jdk1.5.0_10
-
export CATALINA_HOME=/opt/tomcat
-
#export LD_KERNEL_ASSUME="2.2.5"
-
# Source function library.
-
###. /etc/rc.d/init.d/functions
-
# Source networking configuration.
-
###. /etc/sysconfig/network
-
# Check that networking is up.
-
### [ ${NETWORKING} = "no" ] && exit 0
-
#Check for tomcat script
-
if [ ! -f $TOMCAT_HOME/bin/catalina.sh ]
-
then
-
echo "Tomcat not availableÃ-³"
-
exit
-
fi
-
start() {
-
echo -n "Starting Tomcat: "
-
su tomcat -c $TOMCAT_START
-
echo
-
touch /var/lock/subsys/tomcatd
-
# We may need to sleep here so it will be up for apache
-
sleep 3
-
#Instead should check to see if apache is up by looking for httpd.pid
-
}
-
stop() {
-
echo -n $"Shutting down Tomcat: "
-
su tomcat -c $TOMCAT_STOP
-
rm -f /var/lock/subsys/tomcatd
-
echo
-
}
-
-
status() {
-
ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}' | wc | awk '{print $2}'> /tmp/tomcat_process_count.txt
-
read line </tmp/tomcat_process_count.txt
-
if [ $line -gt 0 ]; then
-
echo -n "tomcatd ( pid "
-
ps ax --width=1000 | grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}'
-
echo -n ") is running..."
-
echo
-
else
-
echo "Tomcat is stopped"
-
fi
-
}
-
-
-
restart(){
-
stop
-
start
-
}
-
-
# See how we were called.
-
case "$1" in
-
start)
-
start
-
;;
-
stop)
-
stop
-
;;
-
status)
-
status
-
;;
-
restart|reload)
-
restart
-
;;
-
*)
-
echo "Usage: tomcat {start|stop|status|restart|reload}"
-
RETVAL=1
-
esac
-
-
exit $RETVAL
Add user tomcat. Please note that it is normal user with his own home. Many times it was very useful.
CODE:
-
adduser tomcat
Set JAVA_HOME for all users in /etc/profile.d/java.sh . When we run ’su - tomcat’ this script will set up our environment:
CODE:
-
export JAVA_HOME=/usr/share/jdk1.5.0_10
Give enough permissions to tomacat:
CODE:
-
chown tomcat /usr/share/apache-tomcat-5.5.20/ -R
Now you are able to run tomcat with
CODE:
-
service tomcatd start
The last thing is to run it when system boots:
CODE:
-
chkconfig –add tomcatd
-
chkconfig tomcatd on
Done