如何讓Tomcat自動啟動?

如何讓Tomcat自動啟動?

我試圖讓 Tomcat 自動啟動,但失敗得很慘。 (它是在 Fedora 8 上運行的 Tomcat 6.0.16,基於 Amazon ami-11ca2d78。)因此,按照標準說明,我創建了/etc/init.d/tomcat包含以下內容的內容:

 export JRE_HOME=/env/jdk1.6.0_07/jre/
 case $1 in
 start)
        sh /env/tomcat/bin/startup.sh
        ;;
 stop)
        sh /env/tomcat/bin/shutdown.sh
        ;;
restart)
        sh /env/tomcat/bin/shutdown.sh
        sh /env/tomcat/bin/startup.sh
         ;;
esac
exit 0

我 chmod 755 它。然後我創建軟連結:

ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat

但是當我重新啟動時,它失敗了,並且日誌顯示此異常:

java.lang.IllegalArgumentException:文檔庫 /env/tomcat/webapps/QCServer 不存在或不是可讀目錄

但如果我/etc/init.d/tomcat start直接從命令列運行,一切正常。這是一個可讀的目錄,每個人都有r+x權限。那我到底做錯了什麼?非常感謝您的幫忙!

交流電

答案1

如果它是可讀的,那麼問題是它找不到該目錄。我猜當您手動啟動 tomcat 時,您是以「root」使用者身分登入的。使用者有 CATALINA_HOME 設定來指向 tomcat 的安裝位置。我認為問題是tomcat找不到應用程式基底目錄。

在 server.xml 檔案中,您指定了「QCServe」的基底目錄,請使用完整路徑而不是相對路徑。如果您的應用程式安裝在 /opt/apps/tomcat/webapps/QCServe 中,則將該絕對路徑放在那裡。

-N

答案2

您正在運行什麼運行等級?

在 /etc/rc3.d 中建立鏈接

答案3

儲存為/etc/init.d/tomcat,chkconfig新增tomcat。根據需要編輯頂部的值以適合您的安裝;提供的值只是一個範例(尤其是 JAVA_OPTS 記憶體設定)。

#!/bin/sh
#
# Startup script for Tomcat
#
# chkconfig: 345 82 20
# description: Tomcat is a servlet runner

JAVA_HOME=/usr/local/java
TOMCAT_HOME=/usr/local/tomcat
XMFILE=$TOMCAT_HOME/conf/server.xml
JAVA_OPTS="-server -Xms1536m -Xmx1536m -Xmn384m -XX:+UseParallelGC"
CATALINA_OPTS=""
export JAVA_HOME TOMCAT_HOME JAVA_OPTS CATALINA_OPTS

# See how we were called.
case "$1" in
  start)
    cd $TOMCAT_HOME
    ./bin/startup.sh -config $XMFILE
    ;;
  stop)
    cd $TOMCAT_HOME
    ./bin/shutdown.sh -config $XMFILE
    ;;
  restart)
    $0 stop
    sleep 3
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0

相關內容