#!/bin/sh
#
-# tomcat Jakarta Tomcat Servlet/JSP container
+# tomcat Tomcat Servlet/JSP container
#
# chkconfig: 345 84 16
#
-# description: Jakarta Tomcat Servlet/JSP container
+# description: Tomcat Servlet/JSP container
#
# $Id$
-# Source function library
+# Source function libraries
. /etc/rc.d/init.d/functions
+. /usr/share/java-utils/java-functions
# Get network config
. /etc/sysconfig/network
+CATALINA_BASE=/var/lib/tomcat
+CATALINA_OPTS="-Xmx384M -XX:MaxPermSize=192m -XX:PermSize=128m -Djava.library.path=/usr/lib64:/usr/lib"
+set_jvm
+
# Get service config - may override defaults
[ -f /etc/sysconfig/tomcat ] && . /etc/sysconfig/tomcat
+export CATALINA_BASE
+export CATALINA_OPTS
+export JAVA_OPTS
+export JAVA_HOME
+COMMONSDAEMON=$(find-jar commons-daemon)
+TOMCATLIBS=/usr/share/tomcat/bin/bootstrap.jar:$(build-classpath-directory /usr/share/tomcat/lib)
+CLASSPATH=${CLASSPATH:+"$CLASSPATH:"}$COMMONSDAEMON:$TOMCATLIBS
+
# Check that networking is up.
if is_yes "${NETWORKING}"; then
if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
exit 0
fi
-RETVAL=0
-# See how we were called.
-case "$1" in
- start)
+start() {
# Check if the service is already running?
if [ ! -f /var/lock/subsys/tomcat ]; then
msg_starting tomcat
busy
- su - http -s /bin/sh -c /usr/lib/tomcat/bin/startup.sh >/dev/null 2>&1
+ cd /usr/share/tomcat
+ jsvc -user tomcat \
+ -procname tomcat \
+ -cp $CLASSPATH \
+ -home $JAVA_HOME \
+ -pidfile /var/run/tomcat.pid \
+ -outfile /var/log/tomcat/catalina.out \
+ -errfile /var/log/tomcat/catalina.err \
+ $CATALINA_OPTS \
+ org.apache.catalina.startup.Bootstrap
[ $? -ne 0 ] && RETVAL=1
- [ $RETVAL -eq 0 ] && ok || fail
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/tomcat
+ if [ $RETVAL -eq 0 ]; then
+ ok
+ touch /var/lock/subsys/tomcat
+ else
+ fail
+ fi
else
msg_already_running tomcat
fi
- ;;
- stop)
+}
+
+stop() {
if [ -f /var/lock/subsys/tomcat ]; then
# Stop daemons.
msg_stopping tomcat
busy
- su - http -s /bin/sh -c /usr/lib/tomcat/bin/shutdown.sh >/dev/null 2>&1
+ jsvc -user tomcat \
+ -stop \
+ -cp $CLASSPATH \
+ -pidfile /var/run/tomcat.pid \
+ -outfile /var/log/tomcat/catalina.out \
+ -errfile /var/log/tomcat/catalina.err \
+ org.apache.catalina.startup.Bootstrap
[ $? -eq 0 ] && ok || fail
rm -f /var/lock/subsys/tomcat
else
msg_not_running tomcat
- fi
+ fi
+}
+
+condrestart() {
+ if [ -f /var/lock/subsys/tomcat ]; then
+ stop
+ start
+ else
+ msg_not_running tomcat
+ RETVAL=$1
+ fi
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
;;
- restart|force-reload)
- $0 stop
- $0 start
- exit $?
+ restart)
+ stop
+ start
+ ;;
+ try-restart)
+ condrestart 0
+ ;;
+ force-reload)
+ condrestart 7
;;
status)
- echo "Not supported (yet?)"
+ status --pidfile /var/run/tomcat.pid tomcat tomcat
RETVAL=0
;;
*)
- msg_usage "$0 {start|stop|restart|force-reload|status}"
+ msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
exit 3
esac
exit $RETVAL
-
-# This must be last line !
-# vi:syntax=sh:tw=78:ts=8:sw=4