#!/bin/bash # # This script provides systemd activation of the tomcat service # To create clones of this service: # 1) Create /etc/tomcat/${SERVICE_NAME}.conf from /etc/tomcat/tomcat.conf # to override tomcat defaults and add the EnvironmentFile= # 2) Change the location of PIDFile= #### from /usr/sbin/dtomcat if [[ -r /usr/share/java-utils/java-functions ]]; then . /usr/share/java-utils/java-functions else echo "Can't read Java functions library, aborting" >&2 exit 1 fi set_javacmd # CLASSPATH munging if [[ -n "$JSSE_HOME" ]]; then CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)" fi CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar" CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" CLASSPATH="${CLASSPATH}:$(build-classpath commons-daemon 2>/dev/null)" # See how we were called. function start() { local ret # running as root is not recommended in any case! if [[ $(id -u) == 0 ]]; then echo "ERROR: starting tomcat under uid 0 is not supported" >&2 echo " use appropriate User/Group settings in service file" >&2 echo " see man systemd.exec for details" >&2 exit 2 fi if [[ "$SECURITY_MANAGER" = "true" ]]; then DSECURITY_MANAGER="-Djava.security.manager" else unset DSECURITY_MANAGER fi ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \ -classpath "$CLASSPATH" \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" ${DSECURITY_MANAGER} \ -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \ -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \ org.apache.catalina.startup.Bootstrap start ret=${?} return $ret } function stop() { local ret ${JAVACMD} $JAVA_OPTS \ -classpath "$CLASSPATH" \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap stop ret=${?} if [[ ret == 143 ]]; then ret=0 fi return $ret } function version() { exec ${JAVACMD} -classpath ${CATALINA_HOME}/lib/catalina.jar \ org.apache.catalina.util.ServerInfo } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; version) version ;; *) echo "Usage: $0 {start|stop|restart|version}" >&2 exit 1 esac