r12: Skript starten mittels enigma2.service geht nicht mehr

  • Ich habe ein Skript, daß die richtige skin_user.xml in /etc/enigma2 kopiert. Dafür habe ich in enigma2.service eine "ExecStartPre" Zeile hinzugefügt, so daß sie - bevor E2 gestartet ist - kopiert wird. Das alles hat in/bis r10 gut funktioniert, aber in r12 funktioniert es nicht mehr; d.h. es wird nichts mehr kopiert. Hat sich da was geändert?


    Die Zeile welch ich hinzugefügt habe wird nach "ExecStartPre=/bin/mkdir -p /etc/enigma2" ausgefürht und lautet: ExecStartPre=/bin/sh /usr/script/myscripts/copy_skin_user_xml.sh


    Übrigens wenn ich in CLI "/bin/sh /usr/script/myscripts/copy_skin_user_xml.sh" eingebe, ist alles gut also Skript usw. sind gut

    Einmal editiert, zuletzt von ni_hao ()

  • Ich habe den Fehler gefunden. Ich habe mittlerweile mein Skript modifiziert und habe festgestellt, daß beim starten von E2 in einer .sh Datei "&&" nicht akzeptiert wird.


    Also wenn in enigma2.service (mittels ExecStartPre) ein .sh Skript angerufen wird und das Skript sieht zb. so aus:


    Code
    [ -f A.xml ] && cp -f A.xml skin_user.xml


    dann wird das Skript abgebrochen und startet E2 nicht.


    Was wohl funktioniert ist:


    Code
    if [ -f A.xml ]; then cp -f A.xml skin_user.xml; fi
  • nur eine Idee, funktioniert das auch nicht - obwohl der Schalter -f auch klappen sollte


    [ -e A.xml ] && cp -f A.xml skin_user.xml


    bricht das script auch ab, wenn du es manuell startest?


    sh -x script.sh

    Gruß Fred

    Die Dreambox ist tot, es lebe die Dreambox

  • womoglich ist bei der Ausführung des Scriptes die Umgebungsvariable PATH noch nicht geladen und die shell finded [ nicht
    Ich hatte das Problem auch mal mit einem Script, dass über cron ausgeführt wurde und nicht das tat, was ich wollte


    häng' mal im Script nach der Shebang die Ausgabe von


    echo $PATH


    an



    Bash
    #!/bin/sh
    
    
    # default PATH Variable im OE2.0 - DreamOS habe ich nicht
    PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
    .
    .

    Gruß Fred

    Die Dreambox ist tot, es lebe die Dreambox

  • Nur als allgemeine Info.
    Innerhalb von cron wird "normalerweise" niemals ein Profil geladen.
    Pfade werden aber GRUNDSAETZLICH unter Unix/Linux immer per Profil passend zum aktuellen User geladen.
    Wer Pfade in einem Cronskript braucht, sollte unter Unix/Linux GRUNDSAETZLICH diese entweder hart setzen, oder das Profil des Users "sourcen", welcher das Skript ausfuehren soll.
    Wie gesagt, nur zur allgemeinen Info, da dies regelmaessig eine beliebte Fehlerquelle bei Cronskripten ist.

    DM900 SS, DM8000SSSS
    Kein Support per PN! Nutzt das Forum zum Fragen, dann haben auch andere etwas davon.