Как сделать так, чтобы Tomcat запускался автоматически?

Как сделать так, чтобы Tomcat запускался автоматически?

Я пытаюсь запустить 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 для всех. Так что же я делаю не так? Большое спасибо за любую помощь!

АС

решение1

Если он читаем, то проблема в том, что он не может найти каталог. Когда вы запускали tomcat вручную, вы, как я предполагаю, вошли в систему как пользователь 'root'. У пользователя есть настройка CATALINA_HOME, указывающая на то, где установлен tomcat. Я думаю, проблема в том, что tomcat не может найти базовый каталог приложения.

В файле server.xml, где вы указали базовый каталог для 'QCServe', используйте полный путь вместо относительного. Если ваше приложение установлено в /opt/apps/tomcat/webapps/QCServe, то укажите там этот абсолютный путь.

решение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

Связанный контент