chkconfig: Init-Skript für Apache Tomcat
| Posted in Entwicklung, Linux, Tips
chkconfig und service sind zwei Werkzeuge unter Redhat, die die Runlevel-Verwaltung vereinfachen. Damit chkconfig feststellen kann, für welche Runlevel der betreffende Dienst aktiviert sein soll, muss man Meta-Informationen in den Skript-Header einfügen.
Apache Tomcat bringt in $CATALINE_HOME/bin/jsvc.tar.gz die Quellen eines Verwaltungswerkzeugs für sich mit. Dieses Paket kann man unter Centos 5.2 (installieren der RPMs gcc-c++ und autoconf ist notwendig) folgendermaßen übersetzen:
tar xfz jsvc.tar.gz
cd jsvc-src
./configure –with-java=/usr/java/default
make
cp jsvc ..
Mit dem folgenden Init-Skript kann man nun service und chkconfig für Apache Tomcat nutzen:
#!/bin/sh # # Startup script for the Apache Tomcat servlet container # # chkconfig: 345 55 25 # description: Apache Tomcat servlet container # processname: tomcat # pidfile: /var/run/tomcat/jsvc.pid # config: /opt/apache-tomcat-6.0.20/conf/server.xml JAVA_HOME=/usr/java/default CATALINA_HOME=/opt/apache-tomcat-6.0.20 DAEMON_HOME=/var/run/tomcat TOMCAT_USER=apache # for multi instances adapt those lines. TMP_DIR=/var/tmp PID_FILE=/var/run/tomcat/jsvc.pid CATALINA_OPTS= CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/bin/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar prog="Tomcat" # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network case "$1" in start) # # Start Tomcat # echo -n "Starting $prog: " $CATALINA_HOME/bin/jsvc \ -user $TOMCAT_USER \ -home $JAVA_HOME \ -Dcatalina.home=$CATALINA_HOME \ -Djava.io.tmpdir=$TMP_DIR \ -wait 10 \ -pidfile $PID_FILE \ -outfile $CATALINA_HOME/logs/catalina.out \ -errfile '&1' \ $CATALINA_OPTS \ -cp $CLASSPATH \ org.apache.catalina.startup.Bootstrap # # To get a verbose JVM #-verbose \ # To get a debug of jsvc. #-debug \ if [ $? == 0 ]; then action else action fi ;; stop) # # Stop Tomcat # echo -n "Stopping $prog: " $CATALINA_HOME/bin/jsvc \ -stop \ -pidfile $PID_FILE \ org.apache.catalina.startup.Bootstrap if [ $? == 0 ]; then action else action fi ;; *) echo "Usage tomcat start/stop" exit 1;; esac







