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

  • // 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
    1. sudo systemctl daemon-reload
    2. 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
      1. cat /var/run/doorpi.pid
    • die Log-Datei

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



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

    Code
    1. sudo systemctl daemon-reload
    2. 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...

  • 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
    1. cd /tmp
    2. wget https://raw.githubusercontent.com/motom001/DoorPi/master/doorpi/docs/service/create_daemon_file.py -O - | sudo python
    3. 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
    1. sudo /etc/init.d/doorpi start
    2. 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
    1. sudo update-rc.d doorpi defaults


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


    Code
    1. sudo service doorpi start
    2. bzw.
    3. sudo service doorpi stop
  • 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
    1. 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)

  • 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