#!/sbin/runscript # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 extra_commands="forcestop" PIDFILE=/var/run/${RC_SVCNAME}.pid : ${LONG_NAME:="@NAME@"} : ${CATALINA_HOME:=@CATALINA_HOME@} : ${CATALINA_BASE:=@CATALINA_BASE@} : ${CATALINA_TMPDIR:=@TEMP_DIR@} : ${CATALINA_CONFIG:=${CATALINA_HOME}/conf/catalina.properties} : ${CATALINA_POLICY:=${CATALINA_HOME}/conf/catalina.policy} : ${CATALINA_USER:=tomcat} : ${CATALINA_GROUP:=tomcat} : ${TOMCAT_LOGGING_CONF:=@CONF_DIR@/tomcat-logging.properties} : ${TOMCAT_START:=start} : ${JPDA_TRANSPORT:="dt_socket"} : ${JPDA_ADDRESS:="8000"} : ${JPDA_OPTS="-Xdebug -Xrunjdwp:transport=${JPDA_TRANSPORT},address=${JPDA_ADDRESS},server=y,suspend=n"} : ${JMX_SSL:=enable} : ${JMX_PASSWD_FILE:=@CONF_DIR@/jmxremote.passwd} : ${JMX_ACCESS_FILE:=@CONF_DIR@/jmxremote.access} export JAVA_HOME=`java-config ${TOMCAT_JVM:+--select-vm ${TOMCAT_JVM}} --jre-home` CLASSPATH=`java-config --classpath tomcat-7${TOMCAT_EXTRA_JARS:+,${TOMCAT_EXTRA_JARS}}` export CLASSPATH="${CLASSPATH}${TOMCAT_EXTRA_CLASSPATH:+:${TOMCAT_EXTRA_CLASSPATH}}" depend() { use dns logger net } start() { ebegin "Starting ${LONG_NAME}" if [ ! -e "${CATALINA_TMPDIR}" ]; then eerror "CATALINA_TMPDIR does not exist. Unable to start tomcat." eerror "Please see /etc/conf.d/${RC_SVCNAME} for more information." eend 1 fi cmd=java args= if [ "${TOMCAT_START}" = "debug" ] || [ "${TOMCAT_START}" = "-security debug" ] ; then cmd=jdb args="${args} -sourcepath ${CATALINA_HOME}/../../jakarta-tomcat-catalina/catalina/src/share" fi if [ "${TOMCAT_START}" = "-security debug" ] || [ "${TOMCAT_START}" = "-security start" ]; then args="${args} -Djava.security.manager" args="${args} -Djava.security.policy=${CATALINA_POLICY}" fi if [ "${TOMCAT_START}" = "jpda start" ] ; then args="${args} ${JPDA_OPTS}" fi if [ -r "${CATALINA_HOME}"/bin/tomcat-juli.jar ]; then args="${args} -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ -Djava.util.logging.config.file=${TOMCAT_LOGGING_CONF}" fi if [ -r "${CATALINA_CONFIG}" ]; then args="${args} -Dcatalina.config=${CATALINA_CONFIG}" fi if [ "${JMX_SSL}" = "disable" ]; then args="${args} -Dcom.sun.management.jmxremote.ssl=false" fi if [ -r "${JMX_PASSWD_FILE}" ]; then args="${args} -Dcom.sun.management.jmxremote.password.file=${JMX_PASSWD_FILE}" fi if [ -r "${JMX_ACCESS_FILE}" ]; then args="${args} -Dcom.sun.management.jmxremote.access.file=${JMX_ACCESS_FILE}" fi if [ -n "${RMI_HOSTNAME}" ]; then args="${args} -Djava.rmi.server.hostname=${RMI_HOSTNAME}" fi if [ -n "${JAVA_MIN_HEAP_SIZE}" ]; then args="${args} -Xms${JAVA_MIN_HEAP_SIZE}M" fi if [ -n "${JAVA_MAX_HEAP_SIZE}" ]; then args="${args} -Xmx${JAVA_MAX_HEAP_SIZE}M" fi if [ -n "${JAVA_MIN_PERM_SIZE}" ]; then args="${args} -XX:PermSize=${JAVA_MIN_PERM_SIZE}m" fi if [ -n "${JAVA_MAX_PERM_SIZE}" ]; then args="${args} -XX:MaxPermSize=${JAVA_MAX_PERM_SIZE}m" fi start-stop-daemon --start \ --quiet --background \ --chdir "${CATALINA_TMPDIR}" \ --user ${CATALINA_USER}:${CATALINA_GROUP} \ --make-pidfile --pidfile ${PIDFILE} \ --exec ${JAVA_HOME}/bin/${cmd} \ -- \ ${JAVA_OPTS} \ ${args} \ -Dcatalina.base="${CATALINA_BASE}" \ -Dcatalina.home="${CATALINA_HOME}" \ -Djava.io.tmpdir="${CATALINA_TMPDIR}" \ -classpath "${CLASSPATH}" \ org.apache.catalina.startup.Bootstrap \ ${CATALINA_OPTS} \ ${TOMCAT_START} eend $? } stop() { ebegin "Stopping ${LONG_NAME}" start-stop-daemon --stop \ --quiet --retry=60 \ --pidfile ${PIDFILE} \ --exec ${JAVA_HOME}/bin/java \ -- \ ${JAVA_OPTS} \ -classpath "${CLASSPATH}" \ ${CATALINA_OPTS} \ stop ${STD_OUT} eend $? } forcestop() { ebegin "Forcing ${LONG_NAME} to stop" start-stop-daemon --stop \ --quiet --retry=60 \ --pidfile ${PIDFILE} \ --signal=9 if service_started "${RC_SVCNAME}"; then mark_service_stopped "${RC_SVCNAME}" fi eend $? }