Tomcat 启动/关闭/重启 脚本及优化


一 优化

connectionTimeout="30000" keepAlivetimeout="10000" MaxKeepAliveRequests="256" maxThreads="256" maxProcessors="256" minSpareThreads="8" maxSpareThreads="64" enableLookups="false" acceptCount="256" debug="0" disableUploadTimeout="true" maxPostSize="-1" maxHttpHeaderSize="102400" URIEncoding="UTF-8"

二 脚本

#!/bin/bash
USER=demo
HOME=/home/demo
JAVA_HOME=/usr/java/jdk1.8.0_241
PATH=$JAVA_HOME/bin:/usr/local/bin:$PATH
CATALINA_HOME=$HOME/apache-tomcat-8.5.57
export HOME JAVA_HOME PATH CATALINA_HOME

# check current user
if [ $(id | awk '{print $1}') == 'uid=0(root)' ]; then
    echo '**************************************'
    echo '** Can not run this script as root. **'
    echo '**************************************'
    exit -1
fi;

start(){
      #    如果多个tomcat共用webapps,需要为每个tomcat设置不同的 server-identify 值。建议设置为端口号的负数,例如-10000,-8080等
      JAVA_OPTS="-Djava.awt.headless=true -Dserver-identify=-10000 -Dserver-port=10000 -server -XX:ReservedCodeCacheSize=64m -XX:InitialCodeCacheSize=64m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256M -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true -Xms1024m -Xmx1024m -Xmn512m"
      export JAVA_OPTS
      cd $CATALINA_HOME/bin
      ./startup.sh 
}

stop() {
      cd $CATALINA_HOME/bin
      ./shutdown.sh
}

restart(){
      echo  "`date` restarting ..."
      stop
      sleep 3
      ps -ef | grep java | grep $USER | grep $CATALINA_HOME |  awk ' BEGIN { FS=" ";} { pid = "kill -9 "$2; system(pid); } '
      start
      echo  "`date` restarting finished."
}

cd $HOME
case $1 in
'stop')
      stop
      ;;
'start')
      start
      ;;
'restart')
      restart
esac
cd $HOME