Zuletzt bearbeitet vor einer Woche
von Andre Knieschewski

Kernmodul Tomcat-Einrichtung: Unterschied zwischen den Versionen

Zeile 35: Zeile 35:
  # Stop Tomcat
  # Stop Tomcat
  cd $CATALINA_BASE && exec $CATALINA_HOME/bin/catalina.sh stop
  cd $CATALINA_BASE && exec $CATALINA_HOME/bin/catalina.sh stop
In der Datei SQL_ENV muss dann noch der Ordner /usr/bin in den PATH aufgenommen werden. Daher am besten am Anfang die Zeilen
PATH=$PATH:/usr/bin
export PATH
setzen. Außerdem muss im Kopf der SQL_ENV
#!/bin/bash
stehen, damit die Bash genommen wird.


==Dienst einrichten==
==Dienst einrichten==

Version vom 25. Oktober 2020, 13:36 Uhr

Tomcat als Dienst

Damit Tomcat bei Systemstart automatisch hochfährt, und beim Herunterfahren kontrolliert gestoppt wird, muss man einen Dienst anlegen.

Tomcat als Dienst mit systemd

Wenn Sie den Tomcat der Ubuntu Distribution nutzen, wird dieser automatisch für systemd als Dienst konfiguriert. Die Paramater für den Dienst stehen in der Datei

/etc/default/tomcat

Da die Versionsnummern des Tomcat nicht immer zu SuperX passen, ist es ggf. sinnvoll einen eigenen Tomcat bzw. den im SuperX Kernmodul mitgelieferten Tomcat zu nutzen. In modernen Linuxen geht das mit dem Tool "systemd", was wiederum kontrolliert wird durch den Kommandozeilen Befehl "systemctl".

Damit dieser als Dienst läuft, muss man Linux wie folgt konfigurieren: Nehmen wir als Beispiel, dass das Kernmodul unter /home/superx liegt und Tomcat vom User superx gestartet wird.

Service-Scripte

Zunächst legen wir als User superx im Verzeichnis tomcat/bin zwei Dateien an:

startup_service.x

#
# Startup script for Apache Tomcat with systemd
#
set -e
# Load the service settings
. /home/superx/db/bin/SQL_ENV
CATALINA_BASE=/home/superx/webserver/tomcat
CATALINA_HOME=/home/superx/webserver/tomcat
CATALINA_TMPDIR=/home/superx/webserver/tomcat/temp
# Start Tomcat
cd $CATALINA_BASE && exec $CATALINA_HOME/bin/catalina.sh run 

und shutdown_service.x:

# Shutdown script for Apache Tomcat with systemd
#
set -e
# Load the service settings
. /home/superx/db/bin/SQL_ENV
CATALINA_BASE=/home/superx/webserver/tomcat
CATALINA_HOME=/home/superx/webserver/tomcat
CATALINA_TMPDIR=/home/superx/webserver/tomcat/temp
# Stop Tomcat
cd $CATALINA_BASE && exec $CATALINA_HOME/bin/catalina.sh stop

In der Datei SQL_ENV muss dann noch der Ordner /usr/bin in den PATH aufgenommen werden. Daher am besten am Anfang die Zeilen

PATH=$PATH:/usr/bin
export PATH

setzen. Außerdem muss im Kopf der SQL_ENV

#!/bin/bash

stehen, damit die Bash genommen wird.

Dienst einrichten

Legen Sie als User root die Datei /etc/systemd/system/tomcat_superx.service an, mit dem Inhalt:

[Unit]
Description=Tomcat SuperX
After=syslog.target
After=network.target
After=postgresql.service

[Service]
RestartSec=2s
Type=simple
User=superx
Group=users
WorkingDirectory=/home/superx/webserver/tomcat/bin
ExecStart=/bin/bash /home/superx/webserver/tomcat/bin/startup_service.x
ExecStop=/bin/bash /home/superx/webserver/tomcat/bin/shutdown_service.x
EnvironmentFile=/home/superx/db/bin/SQL_ENV
[Install]
WantedBy=multi-user.target

Den Dienst aktivieren Sie dann mit

systemctl enable tomcat_superx

und starten ihn dann mit

systemctl start tomcat_superx

Bei Problemen kann man die Fehlerausgabe anzeigen:

journalctl -xe

Wenn man die .service-Datei ändert, muss man die Dienste neu laden:

systemctl daemon-reload

Alle Dienste anzeigen können Sie mit

service --status-all