Linux系統Tomcat服務自啟動腳本


Linux系統Tomcat服務自啟動腳本

在linux系統下,手動尋找tomcat的bin目錄下的 startup.sh 及 shutdown.sh 文件往往需要花費較長的時間!!

本文提供一種將tomcat設置為linux系統服務的方式, 可以設置tomcat 與 iptables 等其他系統服務一樣隨開機啟動,並提供 start stop  restarts  status等命令,便於操作.

前提條件!!   正確安裝JDK 並已正確設置好環境變量 .

( 1 )  在/etc/init.d目錄下 創建  tomcat 服務

( 2 ) vi 編輯新添加的tomcat文件

  1 #!/bin/bash
  2 #
  3 # tomcat
  4 # 
  5 
  6 #   --level<等級代號>  指定讀系統服務要在哪一個執行等級中開啟或關畢。
  7 #      等級0表示:表示關機
  8 #     等級1表示:單用戶模式
  9 #      等級2表示:無網絡連接的多用戶命令行模式
 10 #      等級3表示:有網絡連接的多用戶命令行模式
 11 #      等級4表示:不可用
 12 #      等級5表示:帶圖形界面的多用戶模式
 13 #      等級6表示:重新啟動
 14 
 15 # chkconfig: 2345 88 86
 16 # description: tomcat server. \
 17 #              This service starts up the OpenSSH server daemon.
 18 #
 19 
 20 
 21 
 22 #對傳入參數的數量進行判斷
 23 [$# ne 1] && echo "傳入參數錯誤!參數只能是:tomcat {start|stop|restart|status} 其中一個" && exit 2
 24 
 25 #導入庫函數
 26 . /etc/rc.d/init.d/functions
 27 tomcat_home="/root/tomcat"
 28 #為了判斷tomcat是否已經啟動了,我們需要把tomcat啟動之后的進程ID保存起來.后面可以根據該進程ID來判斷是否啟動
 29 pid_file=/tmp/tomcat.pid
 30 #判斷tomcat是否啟動的函數
 31 tomcat_status(){
 32         if [ -f $pid_file ];then  #tomcat的進程ID保存到pid_file中,判斷該文件存在
 33                 PID=`cat $pid_file`   # 從文件中讀取進程ID賦值給本地變量PID
 34                 if [ ! -s $PID ];then   # 判斷本地變量PID是否不為空
 35                         checkpid $PID   #檢查當前tomcat進程是否正在運行
 36                         return $?        
 37                 fi    
 38         fi
 39         return 1
 40 }
 41 #tomcat啟動的函數
 42 tomcat_start(){
 43         #pid文件可能不存在,如果不存在,需要使用touch命令創建該pid文件
 44         if [ ! -f $pid_file ];then
 45                 touch $pid_file
 46         fi
 47         #如果當前tomcat沒有啟動,我們才啟動tomcat
 48         tomcat_status
 49         if [ $? -eq 0 ];then
 50                 echo "tomcat已經啟動,不需要再次啟動"
 51                 return 0
 52         fi
 53         
 54         #執行tomcat的startup.sh,來啟動tomcat
 55         if [ -x "$tomcat_home/bin/startup.sh" ];then
 56                 #執行該startup.sh文件,如果該文件執行之后能夠把tomcat進程打印出來,那獲取pid容易多了
 57                 $tomcat_home/bin/startup.sh | grep "^Tomcat started" | cut -d"=" -f2 >$pid_file
 58         fi
 59 }
 60 #定義tomcat停止的函數
 61 tomcat_stop(){
 62         #停止tomcat通過執行shutdown.sh來完成 ,停止之前要判斷一下該tomcat是否已經啟動
 63         tomcat_status
 64         if [ $? -eq 0 ];then
 65                 if [ -x "$tomcat_home/bin/shutdown.sh" ];then
 66                         $tomcat_home/bin/shutdown.sh &>/dev/null
 67                         return $?
 68                 else
 69                         echo "該用戶沒有執行的權限,請檢查"
 70                 fi
 71         else
 72                 echo "tomcat沒有啟動,不需要停止"
 73                 return 0
 74         fi
 75 }
 76 case $1 in
 77 "start")
 78         #執行啟動的語句
 79         tomcat_start
 80         if [ $? -eq 0 ];then
 81                 tomcat_status && echo "tomcat已經啟動成功"
 82         else
 83                 echo "tomcat啟動出錯,請檢查"
 84         fi
 85         
 86         ;;
 87 "stop")
 88         #執行停止tomcat的語句
 89         tomcat_stop
 90         if [ $? -eq 0 ];then
 91                 echo "tomcat已經停止..."
 92         fi
 93         ;;
 94 "restart")
 95     #執行重啟tomcat的語句
 96         tomcat_stop
 97         sleep 1
 98         tomcat_start
 99     ;;
100 "status")
101     #執行查看tomcat服務器狀態的語句
102         tomcat_status
103         if [ $? -eq 0 ];then
104                 echo "tomcat正在運行...."
105         else
106                 echo "tomcat沒有啟動"
107         fi
108     ;;
109 *)
110         echo "傳入參數錯誤"
111         echo "參數只能是:tomcat {start|stop|restart|status} 其中一個"
112         exit 2
113         ;;
114 esac

( 3 ) 對tomcat文件設置權限  ( 一定要記得添加執行權限,其他權限視個人而定)

 chmod +x  tomcat

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM