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

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

#Location of JAVA_HOME (bin files)
export JAVA_HOME=/usr/java/jdk1.7.0_80    #jdk路径

#CATALINA_HOME is the location of the configuration files of this instance of Tomcat
CATALINA_HOME=/usr/local/tomcat    #tomcat路径  

#TOMCAT_USER is the default user of tomcat
TOMCAT_USER=www    #tomcat启动用户,需要shell权限

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

脚本内容如下:

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
#!/bin/bash
#
# chkconfig: - 95 15
# description: Tomcat start/stop/status script
 
#Location of JAVA_HOME (bin files)
export  JAVA_HOME=
 
#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= /usr/local/tomcat
 
#TOMCAT_USER is the default user of tomcat
TOMCAT_USER=www
 
#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGE= "Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[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  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 tomcat\e[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: $pid\e[00m"
   else
     echo  -e  "\e[00;31mTomcat is not running\e[00m"
   fi
}
 
stop() {
   pid=$(tomcat_pid)
   if  [ -n  "$pid"  ]; then
     echo  -e  "\e[00;31mStoping Tomcat\e[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 exit\e[00m\n" ;
       sleep  1
       let  count=$count+1;
     done
 
     if  [ $count -gt $kwait ]; then
       echo  -n -e  "\n\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\e[00m"
       kill  -9 $pid     fi
   else
     echo  -e  "\e[00;31mTomcat is not running\e[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




本文转自 326647452 51CTO博客,原文链接:http://blog.51cto.com/svsky/1704906,如需转载请自行联系原作者