Tomcat daemon configuration on Debian
According to Apache Tomcat 7 (7.0.92) - Tomcat Setup, tomcat can be invoked as UNIX daemon. And installation step is explained in this document. This requires JDK and gcc. I try this by following steps. This article is an additional one of Install JavaSDK and apache-tomcat on Debian - Shammerism.
- su -
- apt-get install build-essential
- cd $TOMCAT_HOME/bin
- tar xvzf commons-daemon-native.tar.gz
- cd commons-daemon-1.0.x-native-src/unix
- ./configure (--with-java=/usr/local/src/java/jdk1.7.0_67)
- make
- cp jsvc ../..
- cd ../..
- cp daemon.sh /etc/init.d/tomcat
- edit /etc/init.d/tomcat
- add following lines(*1)
- define JAVA_HOME
- define CATALINA_HOME
- define CATALINA_PID
- useradd tomcat
- chown -R tomcat $CATALINA_HOME
- update-rc.d tomcat defaults
I add /etc/init.d/tomcat as below.
### BEGIN INIT INFO # Provides: tomcat # Required-Start: $network $syslog # Required-Stop: $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: start and stop tomcat # Short-Description: start and stop tomcat ### END INIT INFO
JAVA_HOME I defined is line#102.
# grep -n JAVA_HOME /etc/init.d/tomcat 50: JAVA_HOME="$2" 101:# Set JAVA_HOME to working JDK or JRE 102:JAVA_HOME="/usr/local/src/java/jdk1.7.0_67" 105:# If not set we'll try to guess the JAVA_HOME 108:if [ -z "$JAVA_HOME" ]; then 110: test -x "$JAVA_BIN" && JAVA_HOME="`dirname $JAVA_BIN`" 111: test ".$JAVA_HOME" != . && JAVA_HOME=`cd "$JAVA_HOME/.." >/dev/null; pwd` 113: JAVA_BIN="$JAVA_HOME/bin/java" 194: -java-home "$JAVA_HOME" \ 211: -java-home "$JAVA_HOME" \ 240: -java-home "$JAVA_HOME" \
CATALINA_HOME I defined is line#103.
# grep -n CATALINA_HOME /etc/init.d/tomcat 55: CATALINA_HOME="$2" 103:CATALINA_HOME="/usr/local/src/tomcat/7.0.54" 116:# Only set CATALINA_HOME if not already set 117:test ".$CATALINA_HOME" = . && CATALINA_HOME=`cd "$DIRNAME/.." >/dev/null; pwd` 118:test ".$CATALINA_BASE" = . && CATALINA_BASE="$CATALINA_HOME" 120:# If not explicitly set, look for jsvc in CATALINA_BASE first then CATALINA_HOME 124: JSVC="$CATALINA_HOME/bin/jsvc" 136:elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then 137: . "$CATALINA_HOME/bin/setenv.sh" 142:CLASSPATH="$CLASSPATH$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar" 152: CLASSPATH="$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar" 204: -Dcatalina.home="$CATALINA_HOME" \ 221: -Dcatalina.home="$CATALINA_HOME" \ 233: -Dcatalina.home="$CATALINA_HOME" \ 249: -classpath "$CATALINA_HOME/lib/catalina.jar" \
CATALINA_PID I defined is line#104.
# grep -n CATALINA_PID /etc/init.d/tomcat 65: CATALINA_PID="$2" 104:CATALINA_PID="/var/run/tomcat.pid" 168:test ".$CATALINA_PID" = . && CATALINA_PID="$CATALINA_BASE/logs/catalina-daemon.pid" 195: -pidfile "$CATALINA_PID" \ 213: -pidfile "$CATALINA_PID" \ 229: -pidfile "$CATALINA_PID" \ 241: -pidfile "$CATALINA_PID" \