Aller au contenu principal

FirstSpirit als systemd service

Commentaires

5 commentaires

  • Zendesk API User
    Author: brueder - 6/8/2018 7:58

    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

    0
  • Zendesk API User
    Author: cbrandel - 6/8/2018 8:19

    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

    0
  • Zendesk API User
    Author: groth - 6/26/2018 12:39

    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

    0
  • Zendesk API User
    Author: marro - 7/11/2018 13:15

    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

    0
  • Zendesk API User
    Author: cbrandel - 11/6/2018 10:15

    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

    0

Vous devez vous connecter pour laisser un commentaire.