1. 程式人生 > >Linux下Tomcat開機自動啟動

Linux下Tomcat開機自動啟動

權限 esc ref 進程 chkconfig lin 自啟動腳本 lock cas

linux下tomcat開機自動啟動有兩種方法,一種是簡單,一種是復雜而又專業的,使用shell腳本要實現,我們一般推薦shell腳本啟動方式。下面我們分別介紹這兩種方法。

1.shell腳本啟動

眾所周知,在linux中 設置開機自啟動的服務,需要在/etc/rcX.d下掛載。除此之外還需要在/etc/init.d下些啟動腳本。其實很簡單,先export出所需要的 環境變量,例如JAVA_HOME,JRE_HOME, CATALINA_HOME, CATALINA_BASE什麽的,然後再直接調用$CATALINA_HOME/bin/startup.sh就能成功啟動。


第一步:我們在/etc/init.d下新建一個文件tomcat(需要在root權限下操作)

vi /etc/init.d/tomcat  

寫下如下代碼,tomcat自啟動腳本:

#!/bin/sh  
# chkconfig: 345 99 10  
# description: Auto-starts tomcat  
# /etc/init.d/tomcatd  
# Tomcat auto-start  
# Source function library.  
#. /etc/init.d/functions  
# source networking configuration.  
#. /etc/sysconfig/network  
RETVAL=0  
export JAVA_HOME=/usr/java/jdk1.7.0_60  
export JRE_HOME=/usr/java/jdk1.7.0_60/jre  
export CATALINA_HOME=/usr/local/tomcat  
export CATALINA_BASE=/usr/local/tomcat  
start()  
{  
        if [ -f $CATALINA_HOME/bin/startup.sh ];  
          then  
            echo $"Starting Tomcat"  
                $CATALINA_HOME/bin/startup.sh  
            RETVAL=$?  
            echo " OK"  
            return $RETVAL  
        fi  
}  
stop()  
{  
        if [ -f $CATALINA_HOME/bin/shutdown.sh ];  
          then  
            echo $"Stopping Tomcat"  
                $CATALINA_HOME/bin/shutdown.sh  
            RETVAL=$?  
            sleep 1  
            ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk ‘{print $2}‘|xargs kill -9  
            echo " OK"  
            # [ $RETVAL -eq 0 ] && rm -f /var/lock/...  
            return $RETVAL  
        fi  
}  
  
case "$1" in  
 start)   
        start  
        ;;  
 stop)    
        stop  
        ;;  
                                                  
 restart)  
         echo $"Restaring Tomcat"  
         $0 stop  
         sleep 1  
         $0 start  
         ;;  
 *)  
        echo $"Usage: $0 {start|stop|restart}"  
        exit 1  
        ;;  
esac  
exit $RETVAL 

這 裏特別提醒註意這一句ps -fwwu root | grep tomcat|grep -v grep | grep -v PID | awk ‘{print $2}‘|xargs kill -9,熟悉Linux命令的人應該都清楚這句話的意義,這裏就簡單說下前半部分,查詢root用戶下tomcat的進程PID,個人根據實際情況修改。

第二步:保存退出之後,給其增加可執行權限

chmod +x /etc/init.d/tomcat 


第三步:掛載

將 這個shell文件的link連到/etc/rc2.d/目錄下。linux的/etc/rcX.d/目錄中的數字代表開機啟動時不同的run level,也就是啟動的順序,Ubuntu9.10下有0-5六個level,不能隨便連到其他目錄下,可能在那個目錄中的程序啟動時Tomcat所需 要的一些庫尚未被加載,用ln命令將tomcat的鏈接鏈過去:sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S16Tomcat。rcX.d目錄下的命名規則是很有講究的,更具不同需要可能是S開頭,也可能是K開頭,之後的數字代表他們的 啟動順序,詳細看各自目錄下的Readme文件。

ln -s /etc/init.d/tomcat /etc/rc2.d/S16Tomcat  


第四步:設置腳本開機自啟動

把這個腳本設置成系統啟動時自動執行,系統關閉時自動停止,使用如下命令:

chkconfig --add tomcat  


第五步:驗證

執行 sudo reboot。重啟之後就會發現,Tomcat已經成功運行了。


題外話:添加這個腳本之後我們啟動,停止,重啟tomcat可以直接用命令

service tomcat start  
service tomcat stop  
service tomcat restart 


另外一些tomcat設置命令有: chkconfig --list tomcat chkconfig tomcat on,大家可以試試看有什麽效果。


2.修改系統文件

1.修改/etc/rc.d/rc.local
vi /etc/rc.d/rc.local   


2.添加下面兩行腳本,記住是兩行,僅僅第二行不行,必須加第一行。在/etc/rc.d/rc.local文件最後加上:
    export JAVA_HOME=/usr/java/jdk1.7.0_60  
    /usr/local/tomcat/bin/startup.sh start  

說明:/usr/java/jdk1.7.0_60 是jdk安裝目錄
/usr/local/tomcat是tomcat安裝的目錄

3.註意:修改rc.local文件為可執行
chmod +x  rc.local  



第一種shell腳本的方式實現tomcat的開機自啟動已經實踐過,第二種沒用過,只是在網上搜到有這方面的資料,所以記錄下來,方便以後學習。
也可以參考: http://blog.csdn.net/wangyonglin1123/article/details/50996300

Linux下Tomcat開機自動啟動