Search the FirstSpirit Knowledge Base
Hallo,
hat schon mal jemand den FirstSpirit Server (Version 5.2) unter Linux als systemd Service eingerichtet?
Wenn ja, wie?
Danke,
Christian Brandel
Hallo Christian,
intern gibt es bei uns ein paar Stellen, an denen FirstSpirit über systemd läuft. Ich habe dir mal eine kleine Vorlage angehängt, an der du dich orientieren kannst, wenn du das einrichten möchtest.
[Unit]
Description=FirstSpirit Server 5
ConditionPathExists=/opt/firstsprit5/bin/fs5
After=network.target
[Service]
Type=forking
PIDFile=/opt/firstsprit5/run/fs5-wrapper.pid
User=fs5
Group=fs5
UMask=0027
LimitNOFILE=10000
ExecStart=/opt/firstsprit5/bin/fs5 start
ExecStartPost=/bin/sleep 1
ExecStop=/opt/firstsprit5/bin/fs5 stop
[Install]
WantedBy=multi-user.target
Das ist natürlich nur eine Vorlage, und entsprechend deines Setups anzupassen. Es kann zum Beispiel sein, dass ihr noch einen Datenbankserver laufen habt der zuerst hochgefahren werden soll o.Ä., das müsste dann natürlich noch in die Dependencies mit rein. Oder so Kleinkram wie dass FirstSpirit an einem anderen Pfad installiert ist. Gleiches gilt natürlich für Benutzer und Gruppen.
Ich hoffe, dass dir das dennoch hilft.
Viele Grüße,
Lena
Hallo Christian,
intern gibt es bei uns ein paar Stellen, an denen FirstSpirit über systemd läuft. Ich habe dir mal eine kleine Vorlage angehängt, an der du dich orientieren kannst, wenn du das einrichten möchtest.
[Unit]
Description=FirstSpirit Server 5
ConditionPathExists=/opt/firstsprit5/bin/fs5
After=network.target
[Service]
Type=forking
PIDFile=/opt/firstsprit5/run/fs5-wrapper.pid
User=fs5
Group=fs5
UMask=0027
LimitNOFILE=10000
ExecStart=/opt/firstsprit5/bin/fs5 start
ExecStartPost=/bin/sleep 1
ExecStop=/opt/firstsprit5/bin/fs5 stop
[Install]
WantedBy=multi-user.target
Das ist natürlich nur eine Vorlage, und entsprechend deines Setups anzupassen. Es kann zum Beispiel sein, dass ihr noch einen Datenbankserver laufen habt der zuerst hochgefahren werden soll o.Ä., das müsste dann natürlich noch in die Dependencies mit rein. Oder so Kleinkram wie dass FirstSpirit an einem anderen Pfad installiert ist. Gleiches gilt natürlich für Benutzer und Gruppen.
Ich hoffe, dass dir das dennoch hilft.
Viele Grüße,
Lena
Hallo Lena,
danke, das Template hatte ich auch schonmal ausprobiert (hatte es vom Support bekommen). Gerade die Parameter UMask und LimitNOFILE sind hier wichtig, da kommt man evtl. nicht sofort selbst drauf.
Das Problem scheint aber das Timing zu sein, mit dem der ServiceWrapper startet und wann das PID File zur Verfügung steht.
Mit dem "ExecStartPost=/bin/sleep 1" hat das jedenfalls nicht geklappt, der systemd hat das PID file nicht rechtzeitig bekommen und hat das ganze wieder gestoppt.
Starting FirstSpirit 5... PID file <filename> not readable (yet?) after start-post.
Bevor ich jetzt anfange den Parameter für sleep hochzudrehen und zu hoffen, daß es irgendwann mal klappt, wollte ich einfach mal in die Runde fragen, ob es anderweitig schon Erfahrungen damit gibt.
Gruß,
Christian
Hallo Christian,
nur um nochmal sicherzugehen. Ist es wirklich ein Timing Problem oder ein Rechte Problem? Kannst du beobachten, dass das PID File erst mit Verzögerung angelegt wird? Ich weiß, dass es hier manchmal völlig unabhängig von FirstSpirit Rechte Probleme mit dem PID File gibt. Jenachdem wie du den systemd Service konfiguriert hast und welche Rechte der entsprechende User hat, kann es helfen das PID File zu verschieben.
Beispielhaft ein Link bei dem genau das die Lösung für Nginx war: https://www.svennd.be/pid-file-runnginx-pid-not-readable-yet-after-start/
Man kann also durchaus in Betracht ziehen, dass dies gar nichts speziell mit FirstSpirit zu tun hat. Ich hoffe das hilft dir vllt weiter!
Beste Grüße
Christian
Hallo Christian B.,
benötigst Du noch weitere Hilfe oder hat Dir die Antwort von Cristian Groth geholfen?
In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere
Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung
gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Donato
Hallo,
wenn man den Pfad für das PID file richtig einträgt, funktioniert es auch...
Wir verwenden jetzt folgende Konfiguration (mit einem externen Environment file, damit könnten wir ohne den Service anfassen zu müssen, das FS5_DIR flexibel ändern).
/etc/systemd/system/fs5.service:
[Unit]
Description=FirstSpirit 5
After=network.target
[Service]
Type=forking
EnvironmentFile=/opt/web/firstspirit/.systemd.conf
User=web
Group=web
PIDFile=/opt/web/firstspirit/fs5/log/fs5.pid
UMask=0027
LimitNOFILE=10000
ExecStart=/usr/bin/env "${FS5_DIR}/bin/fs5" start
ExecStartPost=/bin/sleep 2
ExecStop=/usr/bin/env "${FS5_DIR}/bin/fs5" stop
[Install]
WantedBy=multi-user.target
Environment file /opt/web/firstspirit/.systemd.conf:
FS5_DIR=/opt/web/firstspirit/fs5