
Ich versuche, Tomcat automatisch zu starten, aber es gelingt mir nicht. (Es ist Tomcat 6.0.16, der auf Fedora 8 läuft und auf Amazon ami-11ca2d78 basiert.) Ich habe also nach den Standardanweisungen /etc/init.d/tomcat
Folgendes erstellt:
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
Und ich chmod 755 es. Dann erstelle ich Softlinks:
ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
Aber beim Neustart schlägt es fehl und die Protokolle zeigen diese Ausnahme:
java.lang.IllegalArgumentException: Die Dokumentbasis /env/tomcat/webapps/QCServer existiert nicht oder ist kein lesbares Verzeichnis
Aber wenn ich es /etc/init.d/tomcat start
direkt von der Kommandozeile aus ausführe, funktioniert alles einwandfrei. Und dies ist ein lesbares Verzeichnis mit r+x-Berechtigungen für alle. Was in aller Welt mache ich also falsch? Vielen Dank für jede Hilfe!
Klimaanlage
Antwort1
Wenn es lesbar ist, liegt das Problem darin, dass das Verzeichnis nicht gefunden werden kann. Als Sie Tomcat manuell gestartet haben, waren Sie vermutlich als „Root“-Benutzer angemeldet. Der Benutzer hat CATALINA_HOME so eingerichtet, dass es auf den Installationsort von Tomcat verweist. Ich denke, das Problem liegt darin, dass Tomcat das Anwendungsbasisverzeichnis nicht finden kann.
Verwenden Sie in der Datei server.xml, in der Sie das Basisverzeichnis für „QCServe“ angegeben haben, den vollständigen Pfad anstelle des relativen Pfads. Wenn Ihre Anwendung in /opt/apps/tomcat/webapps/QCServe installiert ist, geben Sie diesen absoluten Pfad dort ein.
-N
Antwort2
Welchen Runlevel verwenden Sie?
Erstellen Sie den Link in /etc/rc3.d
Antwort3
Speichern Sie es als /etc/init.d/tomcat, chkconfig add tomcat. Bearbeiten Sie die Werte oben nach Bedarf, um sie an Ihre Installation anzupassen; die angezeigten Werte sind nur ein Beispiel (insbesondere JAVA_OPTS-Speichereinstellungen).
#!/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