Tomcat启动脚本

Posted 爱编程的欧巴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat启动脚本相关的知识,希望对你有一定的参考价值。

记录一个比较好的tomcat启动脚本,截取《OneinStack》,修改如下两个参数即可用。

使用之前修改下面2个参数:

 
  1. #Location of JAVA_HOME (bin files)
  2. export JAVA_HOME=/usr/java/jdk1.7.0_80    #jdk路径
  3. #CATALINA_HOME is the location of the configuration files of this instance of Tomcat
  4. CATALINA_HOME=/usr/local/tomcat    #tomcat路径  
  5. #TOMCAT_USER is the default user of tomcat
  6. TOMCAT_USER=www    #tomcat启动用户,需要shell权限

tomcat启动、停止、重启,如下图:

技术分享

脚本内容如下:

 
  1. #!/bin/bash  
  2. #  
  3. # chkconfig: - 95 15   
  4. # description: Tomcat start/stop/status script  
  5.   
  6. #Location of JAVA_HOME (bin files)  
  7. export JAVA_HOME=  
  8.   
  9. #Add Java binary files to PATH  
  10. export PATH=$JAVA_HOME/bin:$PATH  
  11.   
  12. #CATALINA_HOME is the location of the configuration files of this instance of Tomcat  
  13. CATALINA_HOME=/usr/local/tomcat  
  14.   
  15. #TOMCAT_USER is the default user of tomcat  
  16. TOMCAT_USER=www  
  17.   
  18. #TOMCAT_USAGE is the message if this script is called without any options  
  19. TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}"  
  20.   
  21. #SHUTDOWN_WAIT is wait time in seconds for java proccess to stop  
  22. SHUTDOWN_WAIT=20  
  23.   
  24. tomcat_pid() {  
  25.         echo `ps -ef | grep $CATALINA_HOME | grep -v grep | tr -s " "|cut -d" " -f2`  
  26. }  
  27.   
  28. start() {  
  29.   pid=$(tomcat_pid)  
  30.   if [ -n "$pid" ];then  
  31.     echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"  
  32.   else  
  33.     echo -e "\e[00;32mStarting tomcat\e[00m"  
  34.     if [ `user_exists $TOMCAT_USER` = "1" ];then  
  35.       su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh  
  36.     else  
  37.       $CATALINA_HOME/bin/startup.sh  
  38.     fi  
  39.     status  
  40.   fi  
  41.   return 0  
  42. }  
  43.   
  44. status(){  
  45.   pid=$(tomcat_pid)  
  46.   if [ -n "$pid" ];then  
  47.     echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"  
  48.   else  
  49.     echo -e "\e[00;31mTomcat is not running\e[00m"  
  50.   fi  
  51. }  
  52.   
  53. stop() {  
  54.   pid=$(tomcat_pid)  
  55.   if [ -n "$pid" ];then  
  56.     echo -e "\e[00;31mStoping Tomcat\e[00m"  
  57.         $CATALINA_HOME/bin/shutdown.sh  
  58.   
  59.     let kwait=$SHUTDOWN_WAIT  
  60.     count=0;  
  61.     until [ `ps -p $pid | grep -c $pid` = ‘0‘ ] || [ $count -gt $kwait ]  
  62.     do  
  63.       echo -n -e "\e[00;31mwaiting for processes to exit\e[00m\n";  
  64.       sleep 1  
  65.       let count=$count+1;  
  66.     done  
  67.   
  68.     if [ $count -gt $kwait ];then  
  69.       echo -n -e "\n\e[00;31mkilling processes which didn‘t stop after $SHUTDOWN_WAIT seconds\e[00m"  
  70.       kill -9 $pid  
  71.     fi  
  72.   else  
  73.     echo -e "\e[00;31mTomcat is not running\e[00m"  
  74.   fi  
  75.   
  76.   return 0  
  77. }  
  78.   
  79. user_exists(){  
  80.   if id -u $1 >/dev/null 2>&1; then  
  81.     echo "1"  
  82.   else  
  83.     echo "0"  
  84.   fi  
  85. }  
  86.   
  87. case $1 in  
  88.         start)  
  89.           start  
  90.         ;;  
  91.   
  92.         stop)    
  93.           stop  
  94.         ;;  
  95.   
  96.         restart)  
  97.           stop  
  98.           start  
  99.         ;;  
  100.   
  101.         status)  
  102.       status  
  103.         ;;  
  104.   
  105.         *)  
  106.       echo -e $TOMCAT_USAGE  
  107.         ;;  
  108. esac      
  109. exit 0  

以上是关于Tomcat启动脚本的主要内容,如果未能解决你的问题,请参考以下文章

tomcat多实例启动和关闭脚本

SSH远程执行脚本tomcat未启动

Tomcat启动脚本

shell脚本同时启动关闭多个tomcat

tomcat 启动脚本走过的坑

Centos开机自动执行shell脚本启动tomcat服务器