Einführung
Einführung

Einführung / Steuerung des Servers / Unix

Steuerung des FirstSpirit-Servers unter Unix-Betriebssystemen

Inhaltsverzeichnis

Der FirstSpirit-Server (bzw. die FirstSpirit Java VM) wird über den Tanuki Service Wrapper gestartet und gestoppt (siehe Konfiguration).

Die entsprechende Aktion, u.a.:

  • Start des FirstSpirit-Servers,
  • Stopp des FirstSpirit-Servers,
  • Neustart des FirstSpirit-Servers,
  • Erzeugen von Thread Dumps, ...

wird über die fs5 Startdatei an die JVM weitergegeben.

Wichtig Vor dem Starten und Stoppen des FirstSpirit-Servers sollte der Wartungsmodus aktiviert werden.

Zur Steuerung über das FirstSpirit ServerMonitoring siehe FirstSpirit - Steuerung.

Benutzer anlegen

Wir empfehlen, einen eigenen System-Benutzer für den FirstSpirit-Server anzulegen und den FirstSpirit-Server nicht als root zu starten.

Benutzer fs anlegen (Beispiel):

useradd fs

Der FirstSpirit-Server muss an mehreren Stellen in seinem Installations-Verzeichnis Dateien anpassen können. Am einfachsten ist es, ihn sein Installationsverzeichnis (Platzhalter: ~FS) komplett schreiben zu lassen:

chown -R fs:fs ~FS

FS_JAVA_HOME

Zum Start von FirstSpirit ist eine gesetzte FS_JAVA_HOME-Umgebungsvariable oder eine Änderung der Wrapper-Konfiguration erforderlich (siehe FirstSpirit installieren (→Installationsanleitung)).

systemd-Dienst einrichten

Alle größeren Linux-Distributionen verwenden momentan systemd zur Steuerung von Systemdiensten. Da der Installationsort und die Umgebung abweichen können, ist eine vollständige Dokumentation nicht möglich. Bitte konsultieren Sie hierfür die Dokumentation von systemd, insbesondere die Hinweise zur Härtung und Absicherung.
Ein einfaches Beispiel einer Konfiguration sieht wie folgt aus:

[Unit]
Description=FirstSpirit Server 5
ConditionPathExists=~FS/bin/fs5
After=network.target

[Service]
Type=forking
PIDFile=~FS/run/fs5-wrapper.pid
User=fs
Group=fs
UMask=0027
LimitNOFILE=10000
ExecStart=~FS/bin/fs5 start
ExecStartPost=/bin/sleep 1
ExecStop=~FS/bin/fs5 stop

[Install]
WantedBy=multi-user.target

Wieder ist „fs“ der oben für den FirstSpirit-Server-Betrieb angelegte System-Benutzer und „~FS“ ein Platzhalter für das Installationsverzeichnis.

Umgebungsvariablen können in systemd in einem [Service]-Block definiert werden. Dadurch kann auch die o. g. Variable FS_JAVA_HOME in der systemd-Servicedatei deklariert werden:

Environment=FS_JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/

Ein möglicher Ablageort für eine systemd-Konfiguration ist eine Datei fs.service im conf-Verzeichnis unterhalb des FirstSpirit-Installationsverzeichnisses. Zur Installation (als root) ist der komplette Pfad zur Datei anzugeben:

systemctl enable ~FS/conf/fs.service

Server über systemd steuern (als root)

Starten:

systemctl start fs

Stoppen:

systemctl stop fs

Beenden und Neustarten:

systemctl restart fs

Status des Servers ausgeben:

systemctl status fs

SysVinit-Systemdienst konfigurieren

Alternativ zur zuvor beschriebenen systemd-Methode gibt es für Systeme mit dem (älteren) SysVinit-System in ~FS/bin/fs5.init eine Vorlage für ein Init-Script. Damit FirstSpirit darüber automatisch beim Unix-Server-Start mitgestartet wird, muss dieses an die entsprechende Stelle kopiert und angepasst werden:

cp ~FS/bin/fs5.init /etc/init.d/fs5

In der Datei müssen zwei Zeilen angepasst werden:

FSDIR=@@FSDIR@@
FSUSER=@@FSUSER@@

Bei FSDIR ist das Installationsverzeichns (hier als ~FS bezeichnet) einzutragen und bei FSUSER der gerade angelegte Nicht-Root-Nutzer (hier fs).

Die Umgebungsvariable FS_JAVA_HOME kann mit einer Export-Anweisung im Init-Script gesetzt werden (vor dem case-Block):

export FS_JAVA_HOME=%JAVA_HOME%

Die Server-Steuerung funktioniert mit den gleichen vier Befehlen wie bei systemd, nur als Aufruf des Init-Scripts. Zum Start bedeutet das also:

/etc/init.d/fs5 start

Server per FirstSpirit-Benutzerkonto steuern

Der FirstSpirit-Server kann auch von einem normalen Benutzerkonto aus gesteuert werden, sofern der Nutzer die entsprechenden Schreib-Rechte hat - siehe Abschnitt Benutzer anlegen. Ist man als entsprechender Nutzer angemeldet, ruft man statt des System-Init-Scripts einfach das Script ~FS/bin/fs5 mit den gleichen Parametern (start, stop, restart und status) auf.

~FS ist hier das Installationsverzeichnis für den FirstSpirit-Server.

Stackdump erzeugen

Über den Befehl:

fs5 dump

wird ein aktueller Thread Dump erstellt und nach log/fs-dump-DATUM-UHRZEIT.log geschrieben.

Eine gute Analysemöglichkeit bietet das FirstSpirit ServerMonitoring. Die über die Funktionalität Threads erstellten Thread Dumps können hier analysiert und in einer aufbereiteten Ansicht angezeigt werden.

Runlevel

Beim Start eines FirstSpirit-Servers stehen Informationen über den aktuellen Runlevel zur Verfügung.

Die Runlevel werden an verschiedenen Stellen ausgegeben:

  • als Logausgabe in der Datei fs-server.log bzw. fs-wrapper.log
  • als Wert [Zahl] in der Datei ~FS/.fs.lock

Anhand dieser Runlevels kann abgelesen werden, ob bzw. wann welche Server-Funktionalität zur Verfügung steht:

  • SHUTDOWN (RunLevel 0)
    Der Server ist heruntergefahren.
    Hinweis: Die Datei ~FS/.fs.lock ist in diesem Runlevel nicht vorhanden.
  • IN_PROGRESS (RunLevel 20)
    Der Server startet bzw. wird beendet, es sind keine Funktionalitäten sicher verfügbar.
  • CORE_STARTED (RunLevel 40)
    Die Grundfunktionalitäten stehen zur Verfügung, der Server kann über den SOCKET-Port erreicht werden.
  • ROOT_WEBAPP_STARTED (RunLevel 60)
    Der Server kann nun auch über den HTTP-Port erreicht werden.
  • CORE_WEBAPPS_STARTED (RunLevel 80)
    Die globalen Web-Anwendungen stehen zur Verfügung.
  • STARTED (RunLevel 100)
    Alle FirstSpirit-Funktionalitäten stehen zur Verfügung.

Auf diese Runlevel kann beispielweise per API reagiert werden (Interface RunLevelAgent, Package de.espirit.firstspirit.agency, FirstSpirit Developer-API).

© 2005 - 2019 e-Spirit AG | Alle Rechte vorbehalten. | FirstSpirit 2019-11 | Datenschutz | Impressum | Kontakt