
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/tomcat
contendo 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 start
diretamente 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