我试图让 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