前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tomcat daemon 脚本管理Tomcat

Tomcat daemon 脚本管理Tomcat

作者头像
shaonbean
发布2019-05-26 09:32:06
6710
发布2019-05-26 09:32:06
举报
文章被收录于专栏:运维前线运维前线

版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://cloud.tencent.com/developer/article/1434679

Tomcat-daemon

此脚本用来通过daemon的方式管理tomcat服务的启动,停止,重启,查看状态和是啥查看日志,具体用法如下:

代码语言:javascript
复制
# /etc/init.d/tomcatall tomcat_port
tomcat_8081 is valilable !!!
Usage: /etc/init.d/tomcatall {start|stop|restart|status|log|kill}
service tomcat {8080|8081|..} {start|stop|restart|status|log|kill}
[root@aniu-video ~]# /etc/init.d/tomcatall tomcat_port args

代码语言:javascript
复制
#!/bin/bash  
# funtions: 
# chkconfig: 345 80 15  
# description: Multiple tomcats service management script.  
# author: vdevops
# Source function library.  
. /etc/rc.d/init.d/functions  

# tomcat name
TOMCAT_PORT=$1
TOMCAT=tomcat_$1
TOMCAT_HOME=/data/tomcats/${TOMCAT}
TOMCAT_BIN=${TOMCAT_HOME}/bin
#TOMCAT_LOG=${TOMCAT_HOME/logs/catalina.$(date +%Y-%m-%d).out
TOMCAT_LOG=${TOMCAT_HOME}/logs/catalina.out

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

if [ -f ${TOMCAT_BIN}/catalina.sh ];then
       echo "${TOMCAT} is valilable !!!"  
     else
       echo "${TOMCAT} not valilable !!!"
       exit
fi

RETVAL=$?  

start(){
        checkrun
        if [ $RETVAL -eq 0 ]; then  
                echo "-- Starting ${TOMCAT}... --"  
                bash ${TOMCAT_BIN}/startup.sh  
                touch /var/lock/subsys/${TOMCAT_PORT}
                checklog 
                status
        else  
                echo "-- ${TOMCAT} already running !"  
        fi  
}  

# 停止某一台tomcat,如果是重启则带re参数,表示不查看日志,等待启动时再提示查看  
stop(){
        checkrun  
        if [ $RETVAL -eq 1 ]; then  
                echo "-- Shutting down tomcat..."  
                ${TOMCAT_BIN}/shutdown.sh  
                if [ "$1" != "re" ]; then
        checklog
                else
                  sleep 5
                fi
                rm -rf /var/lock/subsys/${TOMCAT_PORT} 
                status
           else  
                echo "-- ${TOMCAT} not running"  
        fi  
      }  

status(){
        checkrun
        if [ $RETVAL -eq 1 ]; then
                echo -n "-- ${TOMCAT} ( pid "  
                ps ax --width=1000 | grep ${TOMCAT_PORT}| grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}'
                              echo -n ") is running..."  
                echo  
          else
                echo "-- ${TOMCAT} is stopped"  
        fi
        #echo "---------------------------------------------"  
}

# 查看tomcat日志,带vl参数
log(){
        status
        checklog yes
}

# 如果tomcat正在运行,强行杀死tomcat进程,关闭tomcat
kill(){
        checkrun
        if [ $RETVAL -eq 1 ]; then
            read -p "-- Do you really want to kill ${TOMCAT_PORT} progress?[no])" answer
            case $answer in
                Y|y|YES|yes|Yes)
                    ps ax --width=1000 | grep ${TOMCAT_PORT} | grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf $1 " "}'| xargs kill -9  
                    status
                ;;
                *);;
            esac
        else
            echo "-- exist with ${TOMCAT_PORT} still running..."
        fi
     }   

checkrun(){  
           ps ax --width=1000 |grep ${TOMCAT_PORT}| grep "[o]rg.apache.catalina.startup.Bootstrap start" | awk '{printf $1 "\n"}' | wc -l > /var/run/tomcat_process_count
           read line < /var/run/tomcat_process_count 
           if [ $line -gt 0 ]; then  
                  RETVAL=1  
                  return $RETVAL  
             else  
                  RETVAL=0  
                  return $RETVAL  
           fi  
}  
# 如果是直接查看日志viewlog,则不提示输入[yes],否则就是被stop和start调用,需提示是否查看日志
checklog(){
           answer=$1
           if [ "$answer" != "yes" ]; then
              read -p "-- See Catalina.out log to check $2 status?[yes])" answer
           fi
           case $answer in
                           Y|y|YES|yes|Yes|"")
                           tail -f ${TOMCAT_LOG}
                                            ;;
                                            *)
                                   #    status
                                   #    exit 0
                                            ;;
           esac
          }

checkexist(){
             if [ ! -d ${TOMCAT_HOME} ]; then
                 echo "-- ${TOMCAT_HOME} does not exist."
                 exit 0
             fi
            }      
case "$2" in  
            start)  
                 checkexist
                 start  
                 exit 0
                 ;;  
             stop)  
                 checkexist
                 stop  
                 exit 0
                 ;;  
          restart)  
                 checkexist
                 stop re 
                 start 
                 exit 0
                 ;;  
           status)  
                 checkexist
                 status  
        #${TOMCAT_BIN}/catalina.sh version  
                 exit 0
                 ;;  
             log)
                checkexist
                log
                exit 0
                ;;
            kill)
                checkexist
                status
                kill
                exit 0
                ;;
               *)  
        echo "Usage: $0 {start|stop|restart|status|log|kill}"  
        echo "service tomcat {8080|8081|..} {start|stop|restart|status|log|kill}"  
esac  
exit 0
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年12月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tomcat-daemon
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档