tomcat 启动关闭重启脚本

这个脚本是从网上服务之过来使用的,具体是谁的我这里已经找不到了,如果作者看到可以给我信息,我会把原链接补充上。

脚本做了一些改动,主要是获取PID的时候缺少了一些过滤

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