Enigma2 in Abhängigkeit eines vorhanden NFS-Share starten

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Enigma2 in Abhängigkeit eines vorhanden NFS-Share starten

      Ich hatte das schonmal irgendwo nebenbei angesprochen, das ich Probleme mit dem EPG meiner Schlafzimmerbox DM900 hatte. Trotz EPG-Refresh wurde alle paar Tage kein EPG mehr angezeit, erst nach einem Löschen der epg.db ging es wieder für ein paar Tage. Da die Bouquet-Listen identisch mit meiner Wohnzimmerbos DM920 sind, die 24/7 an ist und wo alles perfekt läuft, habe ich dann einfach auf der Schlafzimmerbox /etc/ der DM920 gemounted und in /etc/enigma2/ einen Link auf die epg.db der Wohnzimmerbox angelegt. Funktionierte auch in 70% aller Starts der Schlafzimmerbox, aber manchmal eben nicht. Deshalb habe als ersten primitiv-Workaround ein "ExecStartPre=/bin/sleep 8" in die enigma2-environment.service geschrieben, was auch funktioniert. Die 8 Sekunden habe ich durch ausprobieren ermittelt.


      Natürlich ist mir klar, dass ich nur über ein ungesundes Halbwissen der Funktionalität von systemctl verfüge, ich versuche mich aber jetzt einzulesen in das Thema.


      Die denke, die elegante Methode wäre, den Status vom mount der epg.db der Wohnzimmerbox abzufragen und erst dann enigma2 zu starten. Wie mache ich das? Geht das über einen Eintrag "After=" in der enigma2.service? Und welche Unit soll ich da abfragen, um sicher zu sein, dass der Mount auf die DM920 vorhanden ist?

      ----------------------------------------

      Ich mache jetzt mal selbst beim googeln nach systemctl weiter zur Dokumentation für mich selbst und eventuelle Hilfe für andere.
      Ich habe mit "systemctl list-units" die Unit media-etc.automount gefunden, das sollte doch der Link zu meiner DM920 sein. Ich werde jetzt mal ein "Wants=media-etc.automount showiframe-backdrop.service" in die enigma2.service eintragen. Das showiframe-backdrop.service stand da schon drin.

      Aber vorher mach ich ein Backup vom Image, ist sinnvoll vor solchen Änderungen.

      ----------------------------------------

      Nachdem nach 2 x booten 1x epg da und 1 x nicht da war, habe ich folgendes gemacht:
      Die enigma2-environment.service ist wieder in Ursprungszustand. Ich habe das Wants= wie oben abgeändert und ein sleep 4 in die enigma2.service eingebaut , das funktioniert erstmal.

      Aber warum brauche ich eine 4 Sekunden Pause vor dem Start von enigma2, wenn doch der epg.db Link von der DM920 schon da sein sollte?

      Morgen geht es weiter.
    • Ich habe heute nochmal weiter getestet und lasse es jetzt so.
      Wer sich mit systemctl beschäftigen möchte, findet hier eine gute Erläuterung der Begriffe.
      Ich habe heute mal verschiedene Möglichkeiten mit der enigma2.service ausprobiert. Um ohne den Mount auf /etc/enigma2 der DM920 auszukommen, habe ich versucht, ein "ExecStartPre=wget --user=root --password=PW_DM920 -P /etc/enigma2 192.168.178.19/etc/enigma2/epg.db" in die enigma2.service eingefügt, aber dann gab es andere Probleme.

      Deshalb bin ich jetzt bei der ersten Version mit dem Link auf die epg.db meiner Wohnzimmerbox und einem /bin/sleep 4" geblieben, weil es funktioniert.

      Zum Abschluß noch meine aktuelle enigma2.service:

      Spoiler anzeigen

      [Unit]
      Description=enigma2
      After=enigma2-environment.service sockets.target
      Requires=enigma2-environment.service sockets.target
      Wants=media-etc.automount showiframe-backdrop.service media-etc.automount
      DefaultDependencies=no


      [Service]
      EnvironmentFile=/run/enigma2/environment
      EnvironmentFile=-/etc/default/enigma2
      ExecStartPre=/bin/sleep 4
      ExecStartPre=/bin/mkdir -p /etc/enigma2
      ExecStart=/usr/bin/enigma2
      ExecStopPost=/usr/bin/enigma2-system-state
      NotifyAccess=main
      OOMScoreAdjust=-999
      Restart=on-failure
      RestartSec=0
      SuccessExitStatus=2 8 16
      Type=notify


      [Install]
      Also=enigma2-environment.service
      WantedBy=graphical.target