Я пытаюсь запустить Tomcat автоматически, и у меня ужасно не получается. (Это Tomcat 6.0.16, работающий в Fedora 8 на основе 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 для всех. Так что же я делаю не так? Большое спасибо за любую помощь!
AC
Если он доступен для чтения, проблема в том, что он не может найти каталог. Я предполагаю, что когда вы запускали Tomcat вручную, вы вошли в систему как пользователь root. Пользователь настроил CATALINA_HOME, чтобы указать, где установлен tomcat. Я думаю, проблема в том, что tomcat не может найти базовый каталог приложения.
В файле server.xml, где вы указали базовый каталог для QCServe, используйте полный путь вместо относительного пути. Если ваше приложение установлено в / opt / apps / tomcat / webapps / QCServe, укажите здесь абсолютный путь.
-N
На каком уровне выполнения вы работаете?
Создайте ссылку в /etc/rc3.d
Сохраните как /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