service tomcatBash2 all start

来源:互联网 发布:河南卫视网络直播 编辑:程序博客网 时间:2024/05/16 03:54

Linux Shell启动多个Tomcat

    博客分类: 
  • 架构和设计
 

有时部署项目时使用多个应用服务器做负载均衡,这里使用多个Tomcat做负载。

服务器环境: CentOS 6.5

Tomcat目录: /usr/local

Tomcat目录下有tomcat1、tomcat2、tomcat3、tomcat4 四个tomcat实例。

tomcat实例的命名规则: tomcat${i}

 

1.  新建一个shell文件命名为 tomcat.sh

C代码  收藏代码
  1. #!/bin/bash    
  2.    
  3. # Apache Tomcat daemon    
  4. #    
  5. # chkconfig: 345 10 10    
  6. # description: Apache Tomcat daemon    
  7. #    
  8. # processname: tomcat    
  9.    
  10. export JAVA_HOME=/usr/local/java/jdk1.7.0_80  
  11.    
  12. #define variables    
  13. tom="/usr/local/tomcat"   
  14. startup_bin="bin/startup.sh"   
  15. shutdown_bin="bin/shutdown.sh"   
  16. usage="{p2|p3|all} {start|stop|restart|status}"   
  17. dev="/dev/null"   
  18.    
  19. #judge $1 $2 whether null    
  20. if [ "$1" == "" -o "$2" == "" ];then    
  21.     echo    
  22.     echo "Usage: $0 $usage"    
  23.     echo     
  24.     exit 1    
  25. fi    
  26.    
  27. #judge $1    
  28. case $1 in    
  29.         "p3")    
  30.                 tomcats="1 2 3"   
  31.                         ;;    
  32.         "p2")    
  33.                 tomcats="1 2"   
  34.                         ;;    
  35.         "all")    
  36.                 tomcats="1 2 3 4"   
  37.                         ;;    
  38.         *)    
  39.         echo "Usage: $0 $usage"    
  40.             ;;    
  41. esac    
  42.    
  43. #define start function    
  44. tomcatstart() {    
  45.     for i in $tomcats    
  46.     do    
  47.         tom_home="$tom$i"   
  48.         run_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom_home}")    
  49.         if [ "${run_status}X" != "X" ];then    
  50.             echo "tomcat$i is already running..."    
  51.         else    
  52.             ${tom_home}/${startup_bin} &>$dev    
  53.             echo "tomcat$i starting,Please wait 2s..."    
  54.             sleep 2    
  55.         fi    
  56.     done    
  57. }    
  58.    
  59. #define stop function    
  60. tomcatstop() {    
  61.     for j in $tomcats    
  62.     do    
  63.         tom1_home="$tom$j"   
  64.         run1_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom1_home}")    
  65.         if [ "${run1_status}X" == "X" ];then    
  66.             echo "tomcat$j is not running..."    
  67.         else    
  68.             ${tom1_home}/${shutdown_bin} &>$dev    
  69.             echo "tomcat$j stopping,Please wait 2s..."    
  70.             sleep 2    
  71.         fi    
  72.     done    
  73. }    
  74.    
  75. #define restart function    
  76. tomcatrestart() {    
  77.    
  78.     for m in $tomcats    
  79.     do    
  80.         tom2_home="$tom$m"   
  81.         run2_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom2_home}")    
  82.         if [ "${run2_status}X" == "X" ];then    
  83.             echo "tomcat$m is not running..."    
  84.             ${tom2_home}/${startup_bin} &>$dev    
  85.             echo "tomcat$m starting,Please wait 2s..."    
  86.             sleep 2    
  87.         else    
  88.             ${tom2_home}/${shutdown_bin} &>$dev    
  89.             echo "tomcat$m stopping,Please wait 2s..."    
  90.             sleep 2    
  91.             ${tom2_home}/${startup_bin} &>$dev    
  92.             echo "tomcat$m starting,Please wait 2s..."    
  93.             sleep 2    
  94.         fi    
  95.     done    
  96. }    
  97.    
  98. #define status function    
  99. tomcatstatus() {    
  100.     for n in $tomcats    
  101.     do    
  102.         tom3_home="$tom$n"   
  103.         run3_status=$(ps -ef | grep -v 'grep' | egrep "java.*=${tom3_home}")    
  104.         if [ "${run3_status}X" == "X" ];then    
  105.             echo "tomcat$n is not running..."       
  106.         else    
  107.             echo "tomcat$n is running"    
  108.         fi    
  109.     done    
  110. }    
  111.    
  112. #judge $2     
  113. case $2 in    
  114.     "start")    
  115.         tomcatstart    
  116.             ;;    
  117.     "stop")    
  118.         tomcatstop    
  119.             ;;    
  120.     "restart")    
  121.         tomcatrestart    
  122.             ;;    
  123.     "status")    
  124.         tomcatstatus    
  125.             ;;    
  126.     *)    
  127.         echo "Usage: $0 $usage"    
  128.             ;;    
  129. esac    

 

2.  修改文件tomcat.sh的权限,更改为可执行

chmod +x tomcat.sh

 

3.   启动tomcat命令

比如想启动tomcat1和tomcat2两个实例:

./tomcat.sh  p2  start

 

停止命令:

./tomcat.sh  p2 stop

 

4.   把tomcat脚本配置为系统服务

Python代码  收藏代码
  1. cp tomcat.sh /etc/init.d/tomcat  
  2. sudo chkconfig --add /etc/init.d/tomcat  

 查看是否已添加进服务列表

Python代码  收藏代码
  1. chkconfig --list  

 

 添加到服务以后, 就可以这样以服务方式来启动和停止、重启tomcat了。

Python代码  收藏代码
  1. service tomcat p2 start