[gelöst] Eigenes Upstart-Script / Script starten nach Beendigung eines vorher über wmdrawer gestarteten Programms

  • Ich starte ein Programm über den Button an der linken Bildschirmseite
    (aufgerufen wird es in /etc/wmdrawer/tools und konfiguriert über eine exec-Zeile in /etc/init/PROGRAMM.conf, analog firefox.conf)


    Wie bzw. wo kann ich den Aufruf eines Scripts einfügen, das erst NACH Beendigung vom PROGRAMM ausgeführt werden soll.


  • Wie bzw. wo kann ich den Aufruf eines Scripts einfügen, das erst NACH Beendigung vom PROGRAMM ausgeführt werden soll.


    Für sowas lohnt sich ein Blick in die Upstart-Dokumentation: http://upstart.ubuntu.com/cookbook/
    Wenn man sich den Upstart-Job für Firefox so ansieht, findet man doch sehr schnell eine Stelle, die damit zu tun haben könnte:

    Code
    post-stop script
    /bin/rm -f /tmp/.standalone
    if [ ! -z $STANDALONE ] ; then
    vdr-dbus-send /Remote remote.Enable ||:
    /sbin/initctl emit --no-wait vdr-frontend-restart
    fi
    end script

    Und wenn man dann noch die Upstart-Dokumentation zum Stoppen eines Jobs ansieht ist es doch eigentlich klar...


    Ansonsten kann man natürlich auch einen weiteren Upstart-Jop erzeugen, der so eine Startbedingung hat:

    Code
    start on stopped PROGRAMM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Also: Der "post-stop"-Abschnitt ist vorhanden, somit gehe ich davon aus, dass er auch gespawned, also aufgerufen wird.


    Das würde für mich bedeuten, ich mach innerhalb dieses Abschnittes meinen Befehl zum Aufruf des Scripts rein:



    Leider ist das wohl zu einfach gedacht, da "mein-script.sh" nicht ausgeführt wird (habe zum Prüfen einfach mal ein "/usr/bin/touch /tmp/xyz" reingemacht: Die Datei xyz wird nicht unter /tmp angelegt, wenn ich z. B. Firefox schließe.

  • Zeig doch mal bitte den erstellten Upstart-Job /etc/init/PROGRAMM.conf, das Skript, das ausgeführt werden soll und /var/log/upstart/PROGRAMM.log

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Code
    Ich starte ein Programm über den Button an der linken Bildschirmseite
    (aufgerufen wird es in /etc/wmdrawer/tools und konfiguriert über eine exec-Zeile in /etc/init/PROGRAMM.conf, analog firefox.conf)


    damit wird das skript doch garnicht aufgerufen, weil das frontend läuft ja weiter.
    firefox.conf gibt es nur soweit ich gerade weiss über das vdr menu, weil das frontend dann "beendet" wird.


    über das linke menu wird firefox eben nur "über" dem tv bild geöffnet

  • Des Rätsels Lösung:


    Mein eigener Upstart-Job für PROGRAMM war nicht richtig eingerichtet. Das hab ich jetzt nachgeholt und schon wird "mein-script.sh" auch ausgeführt und /tmp/xyz angelegt.


    1.: cd /etc/yavdr/templates_custom/etc/init
    2.: Per "vi 02_header" neues Header-File anlegen. Inhalt: Standard-Header, z. B.:



    03: Per "vi 10_main" Datei anlegen mit Inhalt z. B. aus firefox-Vorlage und die exec-Zeile anpassen (hier opera als Beispiel):


    4: Per "process-template /etc/init/PROGRAMM.conf" aus 02_header und 10_main die /etc/init/PROGRAMM.conf Job-Datei erzeugen lassen
    5: Ggf noch "initctl reload-configuration"

  • Naja ein custom Template braucht es eigentlich nicht dafür, da kann man auch direkt eine /etc/init/PROGRAMM.conf erstellen, wenn es noch keine Templates unter /usr/share/yavdr/templates/etc/init/PROGRAMM.conf/ gibt :)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!