Centos Autostart Tomcat

我跟網上唔小教學做返個tomcat 放返係init.d 入面
但係都係用唔到chkconfig 黎加返tomcat 做auto start
次次chkconfig 都話係唔support…
我用rc.local 加又係著唔到…
試過先source profile 又係唔得…
而家次次都要人手著…
有冇人知點解呀



-------以下附上init.d 入面ge script-------
#!/bin/bash
#
# tomcat
#
# chkconfig:
# description:  Start up the Tomcat servlet engine.

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


RETVAL=$?
CATALINA_HOME="/opt/tomcat"
export JAVA_HOME=/usr/java/default

case "$1" in
start)
        if [ -f $CATALINA_HOME/bin/startup.sh ];
          then
            echo $"Starting Tomcat"
            $CATALINA_HOME/bin/startup.sh
        fi
        ;;
stop)
        if [ -f $CATALINA_HOME/bin/shutdown.sh ];
          then
            echo $"Stopping Tomcat"
            $CATALINA_HOME/bin/shutdown.sh
        fi
        ;;
*)
        echo $"Usage: $0 {start|stop}"
        exit 1
        ;;
esac

exit $RETVAL

回覆 1# 的帖子

chkconfig 好似要個 script handle 埋 status
Ref. http://www.andowson.com/posts/list/272.page

#----------- 8< - 8= - 8< ----------------------------#
#!/bin/sh  
#  
# Startup script for Tomcat, the Apache Servlet Engine  
#  
# chkconfig: 345 86 14  
# description: Tomcat Servlet Engine  
# processname: tomcat  
# pidfile: /var/run/worker1.pid /var/run/worker2.pid  
   
# Source function library.  
. /etc/rc.d/init.d/functions  
   
# User under which tomcat will run  
TOMCAT_USER=tomcat  
   
RETVAL=0  
   
CATALINA_HOME=/var/tomcat6  
WORKER_ROOT="/var/robust"  
WORKER_LIST=( worker1 worker2 )  
WORKER_PORT=( 8105 8205 )  
   
# start, debug, stop, and status functions  
start() {  
   # Start Tomcat in normal mode  
   for (( i = 0 ; i < ${#WORKER_LIST[@]} ; i++ ))  
   do  
     SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
     if [ $SHUTDOWN_PORT -ne 0 ]; then  
         echo "Tomcat ${WORKER_LIST} already started"  
     else  
         echo "Starting tomcat ${WORKER_LIST}..."  
   
         CATALINA_BASE="$WORKER_ROOT/${WORKER_LIST}"  
         rm -rf $CATALINA_BASE/work/*  
   
         chown -R $TOMCAT_USER:$TOMCAT_USER $CATALINA_HOME  
         chown -R $TOMCAT_USER:$TOMCAT_USER $WORKER_ROOT  
         su -l $TOMCAT_USER -c "export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/startup.sh"  
         SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
         while [ $SHUTDOWN_PORT -eq 0 ]; do  
             sleep 1  
             SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
         done  
         echo "Tomcat ${WORKER_LIST} started in normal mode"  
         RETVAL=$?  
         [ $RETVAL = 0 ] && touch /var/lock/subsys/${WORKER_LIST} /var/run/${WORKER_LIST}.pid  
     fi  
   done  
}  
   
debug() {  
   # Start Tomcat in debug mode  
   for (( i = 0 ; i < ${#WORKER_LIST[@]} ; i++ ))  
   do  
     SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
     if [ $SHUTDOWN_PORT -ne 0 ]; then  
         echo "Tomcat ${WORKER_LIST} already started"  
     else  
         echo "Starting tomcat ${WORKER_LIST} in debug mode..."  
   
         CATALINA_BASE="$WORKER_ROOT/${WORKER_LIST}"  
         rm -rf $CATALINA_BASE/work/*  
   
         chown -R $TOMCAT_USER:$TOMCAT_USER $CATALINA_HOME  
         chown -R $TOMCAT_USER:$TOMCAT_USER $WORKER_ROOT  
         su -l $TOMCAT_USER -c "export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/catalina.sh jpda start"  
         SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
         while [ $SHUTDOWN_PORT -eq 0 ]; do  
             sleep 1  
             SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
         done  
         echo "Tomcat ${WORKER_LIST} started in debug mode"  
         RETVAL=$?  
         [ $RETVAL = 0 ] && touch /var/lock/subsys/${WORKER_LIST} /var/run/${WORKER_LIST}.pid  
     fi  
   done  
}  
   
stop() {  
   for (( i = 0 ; i < ${#WORKER_LIST[@]} ; i++ ))  
   do  
     SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
     if [ $SHUTDOWN_PORT -eq 0 ]; then  
         echo "Tomcat ${WORKER_LIST} already stopped"  
     else  
         echo "Stopping tomcat ${WORKER_LIST} ..."  
         CATALINA_BASE="$WORKER_ROOT/${WORKER_LIST}"  
         su -l $TOMCAT_USER -c "export CATALINA_BASE=$CATALINA_BASE; $CATALINA_HOME/bin/shutdown.sh"  
           SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
         while [ $SHUTDOWN_PORT -ne 0 ]; do  
             sleep 1  
             SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
         done  
           RETVAL=$?  
         echo "Tomcat ${WORKER_LIST} stopped"  
         [ $RETVAL=0 ] && rm -f /var/lock/subsys/${WORKER_LIST} /var/run/${WORKER_LIST}.pid  
     fi  
   done  
}  
   
status() {  
   for (( i = 0 ; i < ${#WORKER_LIST[@]} ; i++ ))  
   do  
     SHUTDOWN_PORT=`netstat -vatn|grep LISTEN|grep ${WORKER_PORT}|wc -l`  
     if [ $SHUTDOWN_PORT -eq 0 ]; then  
         echo "Tomcat ${WORKER_LIST} stopped"  
     else  
         MODE="normal"  
         JPDA_PORT=`netstat -vatn|grep LISTEN|grep 8000|wc -l`  
         if [ $JPDA_PORT -ne 0 ]; then  
             MODE="debug"  
         fi  
           echo "Tomcat ${WORKER_LIST} running in $MODE mode"  
     fi  
   done  
}  
   
case "$1" in  
   start)  
         start  
         ;;  
   debug)  
         debug  
         ;;  
   stop)  
         stop  
         ;;  
   restart)  
         stop  
         start  
         ;;  
   redebug)  
         stop  
         debug  
         ;;  
   status)  
     status  
     ;;  
   *)  
     echo "Usage: $0 {start|debug|stop|restart|redebug|status}"  
     exit 1  
esac  
   
exit $RETVAL
#----------- 8< - 8= - 8< ----------------------------#


[ 本帖最後由 quintus 於 2009-6-8 13:54 編輯 ]

TOP