systemctl Dienst startet nicht neu

  • Hey zusammen,


    ich habe mir einen Systemdienst angelegt, der die Anwendung „Smee“ automatisch beim Systemstart startet.


    mit sudo enable systemctl smee habe ich diesen auch aktiviert. Beim Reboot des Raspi startet sich der Service auch. Alles gut soweit.


    Mir ist aber nun schon ein paar mal aufgefallen, dass der Service manchmal abzustürzen scheint.

    Erst mit einem Reboot oder dem Befehl sudo systemctl restart smee läuft wieder alles.


    Sollte der Dienst nicht automatisch „überwacht“ werden und sich selbst neu starten, wenn er nicht mehr läuft??


    Woran könnte das liegen?

    Meine Idee war jetzt schon, den Dienst über crontab einmal am Tag neu zu starten.

    Gruß

    Maddin

  • Sollte der Dienst nicht automatisch „überwacht“ werden und sich selbst neu starten, wenn er nicht mehr läuft??

    Nur wenn du das willst. Warum sollte das von allein gehen?


    Damit ein Service nach einem Crash neu gestartet wird, muss das deine systemd-Datei im [Service]-Abschnitt den Eintrag

    Restart=on-failure oder Restart=always enthalten. Sieht dann etwa so aus:


    [Unit]

    Description=InfluxDB is an open-source, distributed, time series database

    Documentation=https://docs.influxdata.com/influxdb/

    After=network-online.target


    [Service]

    User=influxdb

    Group=influxdb

    LimitNOFILE=65536

    EnvironmentFile=-/etc/default/influxdb

    ExecStart=/usr/bin/influxd -config /etc/influxdb/influxdb.conf $INFLUXD_OPTS

    KillMode=control-group

    Restart=on-failure


    [Install]

    WantedBy=multi-user.target

    Alias=influxd.service


    Mir ist aber nun schon ein paar mal aufgefallen, dass der Service manchmal abzustürzen scheint.

    Abzustürzen scheint? Läuft er denn noch oder nicht mehr?

  • Zitat

    Abzustürzen scheint? Läuft er denn noch oder nicht mehr?

    Das müsste ich beim nächsten mal kontrollieren, wenn es wieder auftritt.

    das war meine Vermutung weil es direkt nach dem Befehl „restart“ bzw. nach reboot wieder ging.


    Ich schaue mir heute Abend mal an, was in der Service-Datei eingetragen ist. Aus der Erinnerung steht aber „always“ drin. Das dürfte doch eigentlich nicht nachteilig sein, oder hat das Auswirkungen im Unterschied zu „on failure“?

    Gruß

    Maddin

    Einmal editiert, zuletzt von Maddin84 ()

  • Hier meine Datei.

    Demnach sollte alles richtig eingestellt sein, oder sollte ich auf „failure“ stellen?


    Status


    Code
    [Unit]
    Description=Smee
    
    [Service]
    Type=simple
    ExecStart=/usr/local/sbin/smee.sh
    Restart=always
    
    [Install]
    WantedBy=multi-user.target

    Gruß

    Maddin

  • Wenn dann "on-failure", nicht "failure"


    https://www.freedesktop.org/so…/man/systemd.service.html

    Unter dem Link findest du auch eine Tabelle die ganz gut erklärt, wann welche restart-setting ausgeführt werden.


    "If set to on-failure, the service will be restarted when the process exits with a non-zero exit code, is terminated by a signal (including on core dump, but excluding the aforementioned four signals), when an operation (such as service reload) times out, and when the configured watchdog timeout is triggered."


    " If set to always, the service will be restarted regardless of whether it exited cleanly or not, got terminated abnormally by a signal, or hit a timeout."



  • ja, „on-failure“ meinte ich.

    Also hat es daran gelegen, dass ich always eingestellt hatte?

    Da dürfte aus meiner Sicht doch auch beim Absturz ein Neustart erfolgen…

    Gruß

    Maddin

  • Hier noch mal der Status von heute morgen.


    Gruß

    Maddin

  • Dein Service läuft, aber dein DNS kann die Adresse smee.io nicht auflösen. Jedenfalls nicht um 4:30:20 Uhr, aber eine Sekunde später dann doch. Und um 5:15:34 gibt's eine Fehlermeldung wegen einer leeren (?) Message - schwer zu sagen, was da passiert und wer da von wem eine Message erhält, die 'undefined' ist.

  • Dein Service läuft, aber dein DNS kann die Adresse smee.io nicht auflösen. Jedenfalls nicht um 4:30:20 Uhr, aber eine Sekunde später dann doch. Und um 5:15:34 gibt's eine Fehlermeldung wegen einer leeren (?) Message - schwer zu sagen, was da passiert und wer da von wem eine Message erhält, die 'undefined' ist.

    Also um 04:30 hat sich der Raspi planmäßig neu gebootet.


    Die Messages kommen aus den Apps wie Locative und Geofency, die einen Geofence senden.


    Also dürfen zumindest die Einstellungen der Service Datei passen, oder?

    Dann liegt der Fehler wohl eher an der Smee Anwendung

    Gruß

    Maddin

  • Also um 04:30 hat sich der Raspi planmäßig neu gebootet.

    Ok, da gab's noch keinen DNS und die Meldung ist verständlich.

    Also dürfen zumindest die Einstellungen der Service Datei passen, oder?

    Ich schätze schon.

  • Okay ich behalte das mal im Auge, wenn es wieder mal zu Problemen kommt.


    Danke erst mal

    Gruß

    Maddin