DoorPi als Daemon (Dienst / Service / Autostart) unter Jessie einrichten

    • Offizieller Beitrag

    // Hinweis: Bei Problemen bitte Beitrag 2 beachten! Danke... \\


    Ein Daemon ist grob gesprochen sowas wie der Autostart unter Windows.


    Damit wir nicht jedes Mal nach einem Pi-Neustart uns anmelden und DoorPi per Hand starten müssen, richte ich es nun als Daemon ein.


    Im Setup wird bereits das Daemon-File erzeugt, sofern das erkannte Betriebssystem ein "posix" und die Installation als sudo durchgeführt wurde. Wenn das geklappt hat, dann liegt unter /etc/init.d/doorpi ein Daemon-File, welches wir dem System nur noch bekannt machen müssen.


    Zuerst prüfen wir, ob DoorPi als Daemon lauffähig ist:

    Code
    sudo systemctl daemon-reload
    sudo /etc/init.d/doorpi start


    Es sollte eine Ausgabe erzeugt werden, wie diese hier:


    Außerdem können wir kontrollieren:

    • das pid File (eine Datei, die die DoorPi Prozess ID enthält)

      Code
      cat /var/run/doorpi.pid
    • die Log-Datei

      Code
      cat /usr/local/etc/DoorPi/log/doorpi.log



    Danach wird dem System dieser Daemon in den "Autostart" eingetragen:

    Code
    sudo systemctl daemon-reload
    sudo update-rc.d doorpi defaults


    Fertig - mit dem nächsten Systemstart wird DoorPi automatisch gestartet und bei einem System-Shutdown wird DoorPi ordentlich runtergefahren.


    Was ist aber, wenn das Daemon-File nicht existiert? Dann lies weiter im nächsten Beitrag...

    • Offizieller Beitrag

    Ausgangslage:
    Bei der Installation wurde kein daemon-File erzeugt und / oder soll nachträglich erzeugt werden.


    Achtung: Die Datei /etc/init.d/doorpi wird ohne Rückfrage überschrieben!


    Code
    cd /tmp
    wget https://raw.githubusercontent.com/motom001/DoorPi/master/doorpi/docs/service/create_daemon_file.py -O - | sudo python
    sudo systemctl daemon-reload


    Dann weiter wie oben...

  • Hallo,


    Ich habe die Installation nach PyPi durchgeführt. Jetzt habe ich das Problem dass der Teil mit dem Daemon nicht geht. Habe auch nachträglich versucht das daemon-File zu erzeugen via Anleitung. Bekomme aber immer die gleiche Meldung:

    Code
    sudo /etc/init.d/doorpi start
    sudo: /etc/init.d/doorpi: command not found


    Ich muss dazu sagen ich bin Anfänger und arbeite also direkt nach Anleitung.


  • Hallo,


    Ich habe die Installation nach PyPi durchgeführt. Jetzt habe ich das Problem dass der Teil mit dem Daemon nicht geht. Habe auch nachträglich versucht das daemon-File zu erzeugen via Anleitung. Bekomme aber immer die gleiche Meldung:


    Ich muss dazu sagen ich bin Anfänger und arbeite also direkt nach Anleitung.


    Ich habe eben gerade die Prozedur der Installation nach Anleitung durchgeführt. Das erstellen das start scriptes muss wie weiter oben beschrieben von Hand erstellt werden und kann dann gestartet werden. Siehe Anhang.



    Wichtig ist hierbei dass Du, nach dem manuellen erstellen des start scriptes, das script auch in den Autostart einträgst.


    Code
    sudo update-rc.d doorpi defaults


    Danach solltest Du eigentlich mit folgendem Befehl DoorPi starten können:


    Code
    sudo service doorpi start
    bzw.
    sudo service doorpi stop
  • Kurze Gegenfrage.


    Hier wurde ganz unten im Posting der Autostart des DoorPi-Deamons mittels eines Shellskripts doorpi.sh erzeugt. Sollte ich das wieder rückgängig machen und den oben beschriebenen Vorgang durchführen?


    Gruß,


    Thorsten

  • Ich habe mir zwar das script jetzt nicht angesehen aber das war ja nur notwendig weil das original start script nicht lief. Du kannst dir ja das alte script sichern und ein neuse manuell erstellen lassen und in den Autostart eintragen. Du musst hierfür ja nicht einmal neu booten sondern einfach dann

    Code
    sudo service doorpi start


    eingeben. Es sollte dann doorpi ohne murren starten, was ja auch tut.


    Ich habe aber keine Bedenken dass das neue script, bei dir, nicht funktioniert.

  • das Kommando sudo /etc/init.d/doorpi start


    scheitert bei mir mit der Meldung:
    [....] Starting doorpi (via systemctl): doorpi.serviceJob for doorpi.service failed. See 'systemctl status doorpi.service' and 'journalctl -xn' for details.
    failed!


    woran kann dies liegen ?


    output von systemctl status doorpi.service
    doorpi.service - LSB: DoorPi
    Loaded: loaded (/etc/init.d/doorpi)
    Active: failed (Result: exit-code) since Mon 2016-04-04 11:13:02 UTC; 1min 48s ago
    Process: 8456 ExecStart=/etc/init.d/doorpi start (code=exited, status=1/FAILURE)

    • Offizieller Beitrag

    In dem Commit auf Github siehst Du, was an der Datei grundsätzlich geändert wurde:
    https://github.com/motom001/Do…fe5533d2cd2ba2d04c6fc6ce1


    Wichtig ist, dass z.B. am Ende der Datei exit $EX steht. Diese Variable $EX sollte im Verlaufe des Scriptes gefüllt werden, z.B. mit EX=1 ;;

  • Hallo,
    leider kommt bei mir die gleiche Fehlermeldung, wie bei Markus Schmitz.
    Den reload und auch das korrekte schrieben doorpi datei habe ich schon geprüft.
    Gibt es noch eine weiter Möglichkeit die Quelle für das Problem einzugrenzen oder hat vielleicht schon jemand eine Lösung dafür


    Fehlermeldung:


    [....] Starting doorpi (via systemctl): doorpi.serviceJob for doorpi.service failed. See 'systemctl status doorpi.service' and 'journalctl -xn' for details.
    failed!


    Vielen Dank
    Markus

  • Also bei den befehlen kommt folgendes:


    -> systemclt status doorpi.service
    * doorpi.service - LSB: DoorPi
    Loaded: loaded (/etc/init.d/doorpi)
    Active: inactive (dead)


    -> journalctl -xn
    No journal files were found.