Como faço para o Tomcat iniciar automaticamente?

Como faço para o Tomcat iniciar automaticamente?

Estou tentando fazer o Tomcat iniciar automaticamente e estou falhando miseravelmente. (É o Tomcat 6.0.16 rodando no Fedora 8, baseado no Amazon ami-11ca2d78.) Então, seguindo as instruções padrão, criei /etc/init.d/tomcatcontendo isto:

 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

E eu chmod 755. Então eu crio links virtuais:

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

Mas quando eu reinicio ele falha e os logs mostram esta exceção:

java.lang.IllegalArgumentException: A base do documento /env/tomcat/webapps/QCServer não existe ou não é um diretório legível

Mas se eu executar /etc/init.d/tomcat startdiretamente da linha de comando, tudo funcionará bem. E este é um diretório legível, com privilégios r+x para todos. Então, o que diabos estou fazendo de errado? Muito obrigado por qualquer ajuda!

AC

Responder1

Se estiver legível, o problema é que não consegue encontrar o diretório. Quando você iniciou o Tomcat manualmente, você estava logado como usuário 'root', suponho. O usuário tem a configuração CATALINA_HOME para apontar onde o Tomcat está instalado. Acho que o problema é que o Tomcat não consegue encontrar o diretório base do aplicativo.

No arquivo server.xml, onde você especificou o diretório base para 'QCServe', use o caminho completo em vez do caminho relativo. Se seu aplicativo estiver instalado em /opt/apps/tomcat/webapps/QCServe, coloque esse caminho absoluto lá.

-N

Responder2

Qual nível de execução você está executando?

Crie o link em /etc/rc3.d

Responder3

Salve como /etc/init.d/tomcat, chkconfig adicione tomcat. Edite os valores na parte superior conforme necessário para adaptá-los à sua instalação; os valores apresentados são apenas um exemplo (especialmente configurações de memória 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

informação relacionada