Tomcat6のサービス登録

CentOS5にTomcat6のサービスを登録してみた。
以下のサイトを参考
http://centos.oss.sc/java/tomcat6/
事前にJavaはSunのjdk6u3をrpmからインストールし、Tomcat6をダウンロードしていて、/usr/local以下に解凍している。
また、Tomcatの解凍先に対して/usr/local/tomcatというシンボリックリンクを張ってある。
環境変数JAVA_HOMEやCATALINA_HOMEは環境に合わせて設定済み。


やらなければいけないこと

  • jsvcのコンパイル
    • gcc、autoconfをyumでインストールしておく。
    • Tomcatの実行フォルダ、$CATALINA_HOME/binにjsvc.tar.gzを解凍する(tar xfvz jsvc.tar.gz)。
    • 解凍したフォルダ内で以下のコマンドを実行する。

autoconf
chmod 744 configure
./configure
make
cp jsvc $CATALINA_HOME/bin

#!/bin/sh
#
# chkconfig: 345 80 15
# description: tomcat

# Source function library.
. /etc/init.d/functions

JAVA_HOME=/usr/java/default
CATALINA_HOME=/usr/local/tomcat
TOMCAT_USER=tomcat
TMP_DIR=/tmp
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
PIDFILE=/var/run/tomcat.pid
LOCKFILE=/var/lock/subsys/tomcat
JSVC=$CATALINA_HOME/bin/jsvc

start(){
  #
  # Start Tomcat
  #

  echo -n "Starting tomcat: "
  $JSVC \
    -pidfile $PIDFILE \
    -user $TOMCAT_USER \
    -home $JAVA_HOME \
    -Dcatalina.home=$CATALINA_HOME \
    -Djava.io.tmpdir=$TMP_DIR \
    -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 \
  ret=$?
  if [ $ret -eq 0 ]; then
    echo_success
    touch $LOCKFILE
  else
    echo_failure
  fi
  echo
}

stop(){
  #
  # Stop Tomcat
  #
  echo -n "Shutting down tomcat: "
  $JSVC \
    -stop \
    -pidfile $PIDFILE \
    org.apache.catalina.startup.Bootstrap
  ret=$?
  if [ $ret -eq 0 ]; then
    echo_success
    rm -f $PIDFILE
    rm -f $LOCKFILE
  else
    echo_failure
  fi
  echo
}

case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    status $JSVC
    ;;
  *)
    echo $"Usage $0 {start|stop|restart|status}"
    exit 1;;
esac
    • chkconfig tomcat on でサービスに登録する。