tomcat以服务启动以及单机多版本部署

tomcat以服务启动以及单机多版本部署

说明

对于tomcat需要增加内存的方法,基本上国内大部分的资料都是修改$CATALINA_HOME/bin/catalina.sh这个文件,增加JAVA_OPTS参数,这种方法在升级tomcat时会直接替换掉catalina.sh文件,导致服务受影响,这里介绍一种新方法。

方法介绍

仔细阅读catalina.sh文件,我们会发现其中有这么几行脚本文件

if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
  . "$CATALINA_BASE/bin/setenv.sh"
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then    
  . "$CATALINA_HOME/bin/setenv.sh"
fi

此脚本会加载了setenv.sh这个脚本文件,而在$CATALINA_HOME/bin/下是没有这个文件的,因此我们可以把变量都写在这个文件中。如下:

#!/bin/bash
CATALINA_PID=$CATALINA_HOME/bin/CATALINA_PID
JAVA_OPTS="-Xms256m -Xmx256m -Xss1024K"
JAVA_HOME=/usr/local/jdk1.7.0_65
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/rt.jar
CATALINA_HOME=/usr/local/tomcat7.0.54
PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME PATH  CATALINA_HOME CLASSPATH

这样在启动tomcat的时候就能直接找到所需的环境变量,这种方法也适用于在同一台机器部署不同版本的tomcat使用不同版本的jdk.

以服务启动

ln -s $CATALINA_HOME/bin/catalina.sh /etc/init.d/tomcat
vi /etc/init.d/tomcat
#chkconfig:2345 55 25  //加入到 #!/bin/bash下
chkconfig --add tomcat

启动及重启

可以通过如下方式启动以及停止tomcat,具体可以通过/etc/init.d/tomcat --help查看,这里不再赘述。

service tomcat start   
service tomcat stop   
service tomcat stop -force  //5秒未停止则强制停止。

附上一个启动脚本

#!/bin/bash
# chkconfig: 2345 80 30
#tomcat: start/stop/restart/status tomcat
#date 2015-1-10
#author : 51clocker
#blog:  http://blog.51clocker.com
#version:  v1.0 


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

#match these values to your environment
###################################################################################################
export JAVA_HOME="/usr/local/jdk1.7.0_65"
export CATALINA_HOME="/usr/local/tomcat7.0.54"
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
export JAVA_OPTS="-server -Xms512m -Xmx512m"
###################################################################################################
getPID() {
PID=$(ps -ef | grep -v 'grep' | grep "${CATALINA_HOME}/conf/logging.properties" | awk '{print $2}')
}

start() {
        getPID
        if [[ "${PID}X" != "X" ]]; then
            echo "tomcat is already running"
        else
            echo "tomcat is starting"
            ${CATALINA_HOME}/bin/catalina.sh start
            tailf ${CATALINA_HOME}/logs/catalina.out
        fi
}

stop() {
        getPID
        if [[ "${PID}X" == "X" ]]; then
            echo "tomcat is not running"
        else
            kill -9 $PID
            echo "tomcat is stop done"
        fi
}

restart() {
        getPID
        if [[ "${PID}X" == "X" ]]; then
            echo "tomcat is not running,and will be start"
            ${CATALINA_HOME}/bin/catalina.sh start
            echo "tomcat is starting"
        else
            kill -9 $PID
            echo "tomcat is stop"
            ${CATALINA_HOME}/bin/catalina.sh start
            echo "tomcat is starting"
            tailf ${CATALINA_HOME}/logs/catalina.out
        fi
}

status() {
        getPID
        if [[ "${PID}X" == "X" ]]; then
            echo "tomcat is not running!"
        else
            echo "tomcat is running!"
        fi
}

case $1 in
        start   )
                start
                ;;
        stop    )
                stop
                ;;
        restart )
                restart
                ;;
        status  )
                status
                ;;
        *       )
                echo $"Usage: $0 {start|stop|restart|status}"
                exit 2
                ;;
esac


你可能感兴趣的:(tomcat以服务启动以及单机多版本部署)