linux下自動啟動tomcat

來源:互聯網
上載者:User
http://blog.csdn.net/prettywolf/archive/2007/03/10/1525911.aspx

以下文章參考了網上的文章,但經過自己實驗和整理。

linux自動啟動程式的方法很多,但是有時某些程式要設定環境變數的就會引起麻煩。

tomcat啟動時需要設定JAVA_HOME,CLASSPATH等環境變數,

很多文章說設定好環境變數,把/path/startup.sh放到rc.local中就可以實現自動啟動了,

但是實際操作發現,很多的linux版本因為安全原因,rc.local中忽略了export命令,也就是說在這裡設定的export都是無效的,以下為轉貼的方法:

在Linux下,Tomcat可以作為一個守護進程來啟動以及停止,這個必須藉助於項目commons-daemon中的jsvc工具。Tomcat安裝完後就帶有這個工具的源碼{tomcat}/bin/jsvc.tar.gz。按照下列命令安裝這個工具:

解壓: tar zxvf jsvc.tar.gz

配置: cd jsvc-src

chmod +x configure

。/configure --with-java=/usr/local/jdk1.5.0

編譯: make

檢驗: 。/jsvc -help

jsvc工具本身帶了一個指令碼(在native目錄下)用來啟動和停止Tomcat守護進程,但是在實驗中發現該指令碼無法設定為自動啟動,顯示的錯誤資訊是:tomcat 服務不支援 chkconfig,因此修改了此指令碼,可以從此處下載:tomcat.txt

程式碼:(網上大部分代碼有錯誤,經修改運行OK)

#!/bin/sh

#

# Startup Script for Tomcat5

#

# chkconfig: 345 87 13

# description: Tomcat Daemon

# processname: jsvc

# pidfile: /var/run/jsvc.pid

# config:

#

# Source function library.

#/etc/init.d/functions 我的系統沒有這個檔案,不過注釋掉這行沒影響

#

prog=tomcat

#

# Small shell script to show how to start/stop Tomcat using jsvc

# If you want to have Tomcat running on port 80 please modify the server.xml

# file:

#

# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->

# <Connector className="org.apache.catalina.connector.http.HttpConnector"

# port="80" minProcessors="5" maxProcessors="75"

# enableLookups="true" redirectPort="8443"

# acceptCount="10" debug="0" connectionTimeout="60000"/>

#

# You need a developement version of Tomcat (Apache Tomcat/4.1-dev)

#

# Adapt the following lines to your configuration

JAVA_HOME=/usr/local/jdk1.5.0

CATALINA_HOME=/usr/local/apache-tomcat-5.5.16

DAEMON_HOME=$CATALINA_HOME/bin

TOMCAT_USER=tomcat5

TMP_DIR=/var/tmp

CATALINA_OPTS=

CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/bin/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar

start(){

echo -n $"Starting $prog: "

    #

    # Start Tomcat

    #

$DAEMON_HOME/jsvc \
    -user $TOMCAT_USER \
    -home $JAVA_HOME \
    -Dcatalina.home=$CATALINA_HOME \
    -Djava.io.tmpdir=$TMP_DIR \
    -outfile $CATALINA_HOME/logs/catalina.out \
    -errfile '&1' \
    $CATALINA_OPTS \
    -cp $CLASSPATH \
    org.apache.catalina.startup.Bootstrap
    #網上文章上面幾行中有空行,會導致出錯

    # To get a verbose JVM

    #-verbose \

    # To get a debug of jsvc.

    #-debug \

    RETVAL=$?

    [ $RETVAL = 0 ] && touch /var/lock/subsys/jsvc

#我的系統沒有/var/lock/subsys這個檔案夾,建立一個OK
    [ $RETVAL = 0 ] && echo success || echo failure

    echo

    return $RETVAL

}

stop(){

    echo -n $"Stopping $prog: "

    #

    # Stop Tomcat

    #

    PID=`cat /var/run/jsvc.pid`

    kill $PID

    RETVAL=$?

    [ $RETVAL = 0 ] && rm /var/lock/subsys/jsvc

    [ $RETVAL = 0 ] && echo success || echo failure

    echo

    return $RETVAL

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart|reload)

stop

start

;;

*)

echo "Usage $0 start/stop"

exit 1;;

esac

修改下載的指令碼裡面有關路徑的資訊以及要啟動Tomcat的使用者(使用者必須已存在)

拷貝指令碼到/etc/rc.d/init.d目錄下的tomcat檔案,給該指令碼賦予可執行許可權

chown tomcat5 tomcat

chmod +x tomcat

你可以使用命令

/etc/rc.d/init.d/tomcat start|stop

來驗證守護進程是否可以正常啟動和停止。

接下來就是把這個指令碼設定成系統啟動時自動執行,系統關閉時自動停止,使用如下命令:

chkconfig --add tomcat

重新啟動系統後可以啟動的過程中看到Starting Tomcat ..... [OK]的資訊,這樣就完成設定過程。

自已再補充一點,要把apache-tomcat-5.5.16下的work所有者設成tomcat5 ,否則會出錯。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1525911

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.