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
