Apache Tomcat ist eine Open-Source-Implementierung der Jakarta-Servlet-Spezifikation und der meistgenutzte Container für Java-Webanwendungen. Tomcat wird über Skripte im bin/-Verzeichnis oder systemd gesteuert; die Umgebungsvariablen CATALINA_HOME (Installation) und CATALINA_BASE (Instanz) bestimmen den Betrieb.
Start und Stopp
$CATALINA_HOME/bin/startup.sh # Tomcat im Hintergrund starten
$CATALINA_HOME/bin/shutdown.sh # Tomcat kontrolliert stoppen
$CATALINA_HOME/bin/catalina.sh run # im Vordergrund starten (für Debug/Container)
Unter Windows heißen die Skripte startup.bat und shutdown.bat. Als systemd-Dienst (z.B. tomcat9 unter Debian/Ubuntu) gilt:
sudo systemctl start tomcat9
sudo systemctl stop tomcat9
sudo systemctl restart tomcat9
sudo systemctl status tomcat9
catalina.sh im Detail
Das zentrale Steuerskript catalina.sh kennt weitere Aktionen:
catalina.sh start # wie startup.sh
catalina.sh run # Vordergrund (Logs direkt auf der Konsole)
catalina.sh stop # wie shutdown.sh
catalina.sh stop -force # hart stoppen (kill -9) bei Timeout
catalina.sh configtest # server.xml auf Syntax prüfen (Exit-Code beachten)
catalina.sh version # Versionsnummern anzeigen
catalina.sh start -security # mit SecurityManager starten (Java 17+ entfernt)
Die Java-Optionen lassen sich über die Umgebungsvariable JAVA_OPTS setzen, z.B. für den Heap:
export JAVA_OPTS="-Xms512m -Xmx1024m"
$CATALINA_HOME/bin/startup.sh
Wichtige Verzeichnisse
conf/–server.xml(Ports, Hosts, Connectors),web.xml,context.xml,tomcat-users.xmlwebapps/– deployte Webanwendungen (WAR-Dateien werden hier abgelegt und automatisch deployed)logs/–catalina.out,localhost.log,access_logbin/– Start-/Stoppskripte undtomcat-juli.jarlib/– gemeinsame Bibliotheken für alle Anwendungen
Manager- und Deploy-Befehle
Die Manager-Web-App erlaubt das Deployment per HTTP (PUT einer WAR-Datei auf /manager/text/deploy?path=/meine-app) oder per Kommandozeile mit curl:
curl -u tomcat:geheim http://localhost:8080/manager/text/list
curl -u tomcat:geheim -T meine-app.war "http://localhost:8080/manager/text/deploy?path=/meine-app"
curl -u tomcat:geheim "http://localhost:8080/manager/text/undeploy?path=/meine-app"
Der Standard-Port ist 8080 (HTTP) und 8005 (Shutdown); der Zugriff auf die Manager-App erfordert in tomcat-users.xml hinterlegte Rollen wie manager-gui.
Verwandte Grundlagen: Java-Befehle, Apache-Befehle, Nginx-Befehle, Webserver, Reverse-Proxy.