HowTo – Ubuntu Tomcat Autostart

Vieles ist in Linux einfach zu bewerkstelligen, ein paar Sachen sind etwas mit Wissen zu hinterlegen bevor man sie durchführt. So auch das Starten von Applikationen beim Bootvorgang.

Nehmen wir als Beispiel mal einen Tomcat App Server. Das Programm gibt einem schon Skripte zum starten und beenden an die Hand. Das ist eigentlich auch alles was man zum weiteren Vorgehen braucht.

Im Verzeichnis /etc/init.d sind bei Linux üblicherweise die Startskripten abgelegt. Diese stellen im Normalfall 4 Parameter zur Verfügung (start/stop/restart/force-reload). Zum Starten brauchen wir… Trommelwirbel… den Start-Parameter.

Wir legen also nun für den Tomcat unter /etc/init.d eine Datei namens tomcat an (mit Root-Rechten).

sudo vi /etc/init.d/tomcat

Es kann auch jeglicher anderer Editor, wie z.B. nano genommen werden.

Anschließend befüllen wir die Datei mit Inhalt:

# Autostart script for tomcat

CATALINA_HOME=path-to-tomcat-directory
export JRE_HOME=path-to-jre-directory

case $1 in
start)
sudo -u username sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sudo -u username sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sudo -u username sh $CATALINA_HOME/bin/shutdown.sh
sudo -u username sh $CATALINA_HOME/bin/startup.sh
;;
force-reload)
sudo -u username sh $CATALINA_HOME/bin/shutdown.sh
sudo -u username sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0

Damit können wir schon recht komfortabel den Kater starten, aber nur manuell. Aber zumindest sind mal die einzelnen Skriptaufrufe weggekapselt.

Zum Autostart verwendet Linux sogenannte Runlevel. Natürlich hat jede größere Distribution da andere.

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

Obige Zeilen bedeuten, dass der Tomcat im Multiusermode (rc2) gestartet wird (S99), aber beim Betreten des Singleusermode (rc1) gestoppt wird (K99).

1 Comment

  1. mala
    Posted Mittwoch, 4. August 2010 at 10:44 | Permalink

    Thanks a lot!

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*