#!/bin/sh
#
-# tomcat Jakarta Tomcat Servlet/JSP container
+# tomcat Tomcat Servlet/JSP container
#
# chkconfig: 345 84 16
+# description: Tomcat Servlet/JSP container
#
-# description: Jakarta 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
-# Get service config - may override defaults
-[ -f /etc/sysconfig/tomcat ] && . /etc/sysconfig/tomcat
-
# Check that networking is up.
if is_yes "${NETWORKING}"; then
- if [ ! -f /var/lock/subsys/network ]; then
- # nls "ERROR: Networking is down. %s can't be run." <service>
- msg_network_down tomcat
+ if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
+ msg_network_down "Tomcat"
exit 1
fi
else
exit 0
fi
-# See how we were called.
-case "$1" in
- start)
+set_jvm
+
+# Set default options
+CATALINA_OPTS="-Xmx384M -XX:MaxPermSize=192m -XX:PermSize=128m"
+
+# Get service config - may override defaults
+[ -f /etc/sysconfig/tomcat ] && . /etc/sysconfig/tomcat
+
+unset TMPDIR
+unset TMP
+
+COMMONSDAEMON=$(find-jar commons-daemon)
+TOMCATLIBS=/usr/share/tomcat/bin/bootstrap.jar:$(build-classpath-directory /usr/share/tomcat/lib)
+CLASSPATH=${CLASSPATH:+"$CLASSPATH:"}$COMMONSDAEMON:$TOMCATLIBS
+
+CATALINA_HOME=/usr/share/tomcat
+CATALINA_BASE=/var/lib/tomcat
+CATALINA_TMPDIR=/var/lib/tomcat/temp
+
+JSVC_OPTS="-classpath ${CLASSPATH} \
+ -home ${JAVA_HOME} \
+ -pidfile /var/run/tomcat.pid"
+
+if is_yes "${SECURITY_MANAGER}"; then
+ CATALINA_OPTS="$CATALINA_OPTS \
+ -Djava.security.manager \
+ -Djava.security.policy==${CATALINA_BASE}/conf/catalina.policy"
+ if [ -n "${SECURITY_MANAGER_DEBUG}" ]; then
+ CATALINA_OPTS="$CATALINA_OPTS \
+ -Djava.security.debug=${SECURITY_MANAGER_DEBUG}"
+ fi
+fi
+
+start() {
# Check if the service is already running?
- if [ ! -f /var/lock/subsys/tomcat ]; then
- # show "Starting %s service" tomcat
- msg_starting tomcat
- busy
- su - http -s /bin/sh -c /usr/lib/tomcat/bin/startup.sh >/dev/null 2>&1
- RETVAL=$?
- if [ $RETVAL -eq 0 ]; then
- ok
- else
- fail
- fi
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/tomcat
+ if [ -f /var/lock/subsys/tomcat ]; then
+ msg_already_running "Tomcat"
+ return
+ fi
+
+ msg_starting "Tomcat"
+ busy
+ cd $CATALINA_BASE
+ /usr/bin/jsvc -user tomcat -procname tomcat \
+ $JSVC_OPTS \
+ -Dcatalina.base=${CATALINA_BASE} \
+ -Dcatalina.home=${CATALINA_HOME} \
+ -Djava.io.tmpdir=${CATALINA_TMPDIR} \
+ -Djava.library.path=/usr/lib64:/usr/lib \
+ -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
+ -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
+ $CATALINA_OPTS \
+ org.apache.catalina.startup.Bootstrap >> /var/log/tomcat/catalina.out 2>&1
+ [ $? -ne 0 ] && RETVAL=1
+ if [ $RETVAL -eq 0 ]; then
+ ok
+ touch /var/lock/subsys/tomcat
else
- # show "%s service is already running." tomcat
- msg_already_running tomcat
- exit 1
+ fail
+ fi
+}
+
+stop() {
+ if [ ! -f /var/lock/subsys/tomcat ]; then
+ msg_not_running "Tomcat"
+ return
fi
+
+ # Stop daemons.
+ msg_stopping "Tomcat"
+ busy
+ jsvc -user tomcat -stop \
+ $JSVC_OPTS \
+ org.apache.catalina.startup.Bootstrap
+ [ $? -eq 0 ] && ok || fail
+ rm -f /var/lock/subsys/tomcat
+}
+
+condrestart() {
+ if [ ! -f /var/lock/subsys/tomcat ]; then
+ msg_not_running "Tomcat"
+ RETVAL=$1
+ return
+ fi
+
+ stop
+ start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+ start)
+ start
;;
stop)
- # Stop daemons.
- # show "Stopping %s service" tomcat
- if [ -f /var/lock/subsys/tomcat ]; then
- msg_stopping tomcat
- busy
- su - http -s /bin/sh -c /usr/lib/tomcat/bin/shutdown.sh >/dev/null 2>&1
- RETVAL=$?
- if [ $RETVAL -eq 0 ]; then
- ok
- else
- fail
- fi
- rm -f /var/lock/subsys/tomcat
- else
- # show "%s service is not running." tomcat
- msg_not_running tomcat
- exit 1
- fi
+ stop
+ ;;
+ restart)
+ stop
+ start
;;
- restart|reload|force-reload)
- $0 stop
- $0 start
+ try-restart)
+ condrestart 0
+ ;;
+ force-reload)
+ condrestart 7
;;
status)
- echo "Not supported (yet?)"
- RETVAL=0
+ status --pidfile /var/run/tomcat.pid tomcat tomcat
+ exit $?
;;
*)
- # show "Usage: %s {start|stop|restart|reload|force-reload|status}"
- msg_usage "$0 {start|stop|restart|reload|force-reload|status}"
- exit 1
+ 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