如何使 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 add 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

相关内容