(Gelöst) Vdr und MMS umschalten?

  • Hallo,


    Trotz suche habe ich für mein Problem noch keine Lösung gefunden.
    Ich würde gerne MMS für z.B. das Betrachten von Bildern nutzen.


    Starten tuhe ich vdr-sxfe mit Fluxbox so


    #!/bin/bash
    vdr-sxfe --aspect=4:3 --fullscreen --reconnect --lirc xvdr+tcp://localhost
    exit 0


    funktioniert auch so weit.
    Nun habe ich mir unter commands.costume.conf einen Befehl angelegt, der das startet.


    #!/bin/bash
    sudo killall -9 vdr-sxfe
    mms
    exit 0


    Das funktioniert aber nur, wenn ich den Vdr von einer Bash in Fluxbox durch Eingabe von:
    sudo /etc/init.d/vdr restart
    neu starte, ansonsten führt er nur den killall vdr durch ohne MMS zu starten.


    Der Vdr läuft genauso wie vdr-sxfe als user vdr.


    MfG Knopel

    Gen2vdr; Gigabyte GA-K8NF9-Ultra Rev1.0, AMD 64 3700+@1400Mhz, 1,2 V, 2,0 Giga Ram, Geforce 6800 ac silencer bios mod, WD 250 GB, (dualboot XP/ Gen2vdr), Seagate 200 GB (video), Technisat Skystar 2 DVB-S, Technisat Airstar DVB-T


    Ausgabe: Xineliboutput-sxfe auf LCD

    Einmal editiert, zuletzt von knopel256 ()

  • Danke,
    aber MMS möchte immer als normaler user getartet werden und wenn ich den restart vom Vdr durchgeführt hab bin ich ja immernoch als Benutzer vdr tätig.
    Direkter start stellt kein problem dar..
    Log gibt auch keine Fehler



    ar 14 18:53:04 debian-vdr vdr: [3190] [xine..put] OSD bandwidth: 338410 bytes/s (2643 kbit/s)
    Mar 14 18:53:05 debian-vdr vdr: [3190] executing command 'sh /scripts/vdr-mms.sh'
    Mar 14 18:53:06 debian-vdr lircd-0.8.3[2797]: removed client
    Mar 14 18:53:06 debian-vdr vdr: [3284] [xine..put] Client connection 0 closed
    Mar 14 18:53:06 debian-vdr vdr: [3284] [xine..put] Closing connection 0

    Gen2vdr; Gigabyte GA-K8NF9-Ultra Rev1.0, AMD 64 3700+@1400Mhz, 1,2 V, 2,0 Giga Ram, Geforce 6800 ac silencer bios mod, WD 250 GB, (dualboot XP/ Gen2vdr), Seagate 200 GB (video), Technisat Skystar 2 DVB-S, Technisat Airstar DVB-T


    Ausgabe: Xineliboutput-sxfe auf LCD

  • Ich korrigiere, jetzt gehts auch nach einem Neustart nicht mehr.

    Gen2vdr; Gigabyte GA-K8NF9-Ultra Rev1.0, AMD 64 3700+@1400Mhz, 1,2 V, 2,0 Giga Ram, Geforce 6800 ac silencer bios mod, WD 250 GB, (dualboot XP/ Gen2vdr), Seagate 200 GB (video), Technisat Skystar 2 DVB-S, Technisat Airstar DVB-T


    Ausgabe: Xineliboutput-sxfe auf LCD

  • netvista-fan


    hab da mal ne anfängerfrage :


    bei der zeile

    Code
    if [ ! -f /tmp/xinevdr ]; then


    was bedeutet "!" und das "-f" `??
    bei "!" würde ich noch denken ---> "wenn nicht da..."
    aber was ist -f ?
    :schiel


    sorry für die "scriptprogrammierung für dummies" fragen....
    aber interesse ist ja schon da, das zu verstehen ......
    :schiel


    ach ja und der letzte "absatz" muss sein ??? sonst landet das script in einer endlosschleife ?????
    oder was macht :

    Code
    if [ -e /tmp/poweroff -o -e /tmp/shutdown ]; then break
  • So ich hab mich nun zum ersten mal "ernsthaft" mit der Bash beschäftigt und hab nun folgende Lösung.


    Dazu ein paar Erläuterungen:
    Das schaltet jetzt je nach dem, was beendet wurde zwischen MMS und Vdr in einer Endlosschleife um.
    Ich benutze irexec damit ich wenn vdr-sxfe mal hängen sollte, die Ausgabe, sprich den gesammten Fluxbox, neu starten kann.
    Das funktioniert hier aber nur einmalig, weswegen ich Lirc und damit irexec jedesmal danach neustarten muss.
    In /etc/vdr/vdr.default muss


    Zitat

    OPTIONS="-w 60 --lirc=/dev/null"


    stehen, damit wenn vdr-sxfe beendet ist, der Vdr nicht auf Lirc reagiert und so MMS mit Lirc gesteuert werden kann.


    Starten tuhe ich den Vdr nun mit dem Befehl in der:
    /home/(Benutzername)/.fluxbox/init


    Zitat

    session.screen0.rootCommand: sh /scripts/switch.sh



    Welcher das Srcipt:
    /scripts/switch.sh



    aufruft.


    In /etc/vdr/command-hooks/commands.custom.conf steht zusätzlich


    Zitat

    MS starten:sh /scripts/vdr-mms.sh


    /srcipts/vdr-mms.sh


    Zitat

    #!/bin/bash
    sudo killall -9 vdr-sxfe
    exit 0


    und in /etc/mms/Config


    Zitat

    shutdown_script = sh /scripts/mms-vdr.sh


    /scripts/mms-vdr.sh


    Zitat


    #!/bin/bash
    sudo killall -9 mms
    exit 0


    In der /etc/lircrc und /home/(Benutzername)/.lircrc



    in der /scripts/kill-switch.sh


    Zitat


    #!/bin/bash
    sudo killall -HUP fluxbox
    sudo killall switch.sh
    exit 0


    Alles Sripcte müssen mit

    Zitat

    chmod +x script.sh


    ausführbar gemacht werden.

    Gen2vdr; Gigabyte GA-K8NF9-Ultra Rev1.0, AMD 64 3700+@1400Mhz, 1,2 V, 2,0 Giga Ram, Geforce 6800 ac silencer bios mod, WD 250 GB, (dualboot XP/ Gen2vdr), Seagate 200 GB (video), Technisat Skystar 2 DVB-S, Technisat Airstar DVB-T


    Ausgabe: Xineliboutput-sxfe auf LCD

    8 Mal editiert, zuletzt von knopel256 ()

  • schön das es klappt,
    irexec nutze ich selbst auch, ist ein recht nettes tool.


    ! = nicht da
    -f dürfte für file stehen


    der letzte absatz ist für nen abbruch, klappt jedoch dann nur wenn die anderen Programme grad nicht laufen, sonst hängt die Schleife bis das Prog beendet ist...
    Nutze ich imho jedoch nicht, das ganze wird bei nem shutdown eh beendet...


    Naja, das ganze liesse sich sicherlich noch etwas optimieren und verschönern,
    aber so lange es ohne Probleme läuft sollte es ok sein.

  • Danke,
    Weil mich dass mit der Shell gerade interresiert, was würdest du denn anders machen?

    Gen2vdr; Gigabyte GA-K8NF9-Ultra Rev1.0, AMD 64 3700+@1400Mhz, 1,2 V, 2,0 Giga Ram, Geforce 6800 ac silencer bios mod, WD 250 GB, (dualboot XP/ Gen2vdr), Seagate 200 GB (video), Technisat Skystar 2 DVB-S, Technisat Airstar DVB-T


    Ausgabe: Xineliboutput-sxfe auf LCD

  • Ist schon ein wenig her, aber ich meine das die scripte als root laufen,
    das wär eine Sache und ich meine beim x-start hab ich eine pid nicht bekommen und beende daher mit nem killall was auch etwas unschön ist.


  • Alles zwischen den eckigen Klammern wird dem Kommando test vorgeworfen,
    mit

    Code
    man test

    kannst du dir ansehen was sonst noch geht.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • gda + netvista thx für die erklärungen.
    bin am üben allerdings hängt das bei mir gerade in schleife die SO nicht gewollt war :schiel


    aber irexec ist soooooooo nützlich !!
    was ich auch nicht versteh, irexec scheint irgendwie nur einmalig zu funktionieren, danach reagiert die "taste" nicht mehr bis zu einem erneuten aufruf von irexec ??? ist das so gewollt ?
    ich hab gedacht mit "-d" läuft das immer im "hintergrund" weiter...

  • Was passiert den bei dir was nicht gewollt war?
    Hier gehts so problemlos..
    ##### bin beim Probieren nen paar mal in komischen Schleifen gelandet.
    irexec? Keine Ahnung ich muss es danach jedes mal neu starten und als irexec -d /etc/lirc/lircrc hatte es so nette Effekte wie Vdr-sxfe beim 1. Aufruf ein mal starten, beim 2. 2 mal und beim 3. 4mal .......
    Deswegen dieses Script.

    Gen2vdr; Gigabyte GA-K8NF9-Ultra Rev1.0, AMD 64 3700+@1400Mhz, 1,2 V, 2,0 Giga Ram, Geforce 6800 ac silencer bios mod, WD 250 GB, (dualboot XP/ Gen2vdr), Seagate 200 GB (video), Technisat Skystar 2 DVB-S, Technisat Airstar DVB-T


    Ausgabe: Xineliboutput-sxfe auf LCD

    Einmal editiert, zuletzt von knopel256 ()

  • Zitat

    Original von knopel256
    Übrigens ein nettes killall sh als root stopt das script,


    Das solltest Du keinem Anfänger empfehlen, weil das auch noch ganz andere
    Prozesse stoppen kann als den gewollten.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • @knopel256 irgendein "rechte"problem...... egal mach später weiter......
    übrigens wird irexec abgebrochendurch das "killall" d.h. wenn man den prozess der durch irexec aufgerufen wurde mit killall beendet.
    nur wie macht man das anders :schiel

  • Ich hatte bei irexec eine Konstellation entsprechend:
    Buton 1 = killall vdr-sxfe && mms -u vdr


    und


    Buton 2 = killall mms -u vdr && vdr-sxfe --lirc .......xvdr+tcp://localhost


    Das hat es als daemon mit gemacht, bloß mit dem erwähnten Effekt, das Vdr-sxfe sich mit erneutem Versuch expotential neu zu starten schien.
    Und ohne daemon musste ich halt den entsprechenden Prozeß mit killall beenden.


    gda: :unsch Tschuldigung... bin selber noch am lehrnen... mal ne blöde Frage: Wie stoppe ich den die Sache eleganter?

    Gen2vdr; Gigabyte GA-K8NF9-Ultra Rev1.0, AMD 64 3700+@1400Mhz, 1,2 V, 2,0 Giga Ram, Geforce 6800 ac silencer bios mod, WD 250 GB, (dualboot XP/ Gen2vdr), Seagate 200 GB (video), Technisat Skystar 2 DVB-S, Technisat Airstar DVB-T


    Ausgabe: Xineliboutput-sxfe auf LCD

    Einmal editiert, zuletzt von knopel256 ()

  • Äh, ja...


    Wie Du hoffentlich gesehen hast wechsel ich mit meinem switch.sh script welches anhand der Datei in /tmp entweder vdr-sxfe oder mms killt und die datei in /tmp entweder löscht oder erstellt.
    Statt dem killall könnte man sicher noch irgendwie über die pid gehen, aber solange die progs nur 1x laufen sollte es so ok sein.
    Über irexec wird dann halt das script aufgerufen, damit brauchts nur eine Taste zum wechseln.
    (vdrmms.sh startet dann ja das gewünschte neu...)


    Im startx.sh bin ich jedoch nie an die richtige pid vom irexec gekommen, die war irgendwie immer falsch...
    beim x und xterm hats geklappt, da könnte man noch etwas verbessern...
    Und beim shutdown wird das "endlosschleifen" vdrmms script mit dem xterm recht hart beendet, das geht sicher noch etwas besser.

  • mein freund google sagt es gibt bessere möglichkeit einen "prozess" zu beenden :


    Zitat

    ps jax | grep "runvdr" | cut -d " " -f7 |head -1


    liefert die PID


    Zitat

    kill `ps jax | grep 'runvdr' | cut -d ' ' -f7 | head -1`


    killt meinen vdr ohne irexec zu beenden


    an die profis : lacht nicht !!

  • Ok, so extrem fit bin ich bei den scripten auch nicht mehr...
    aber was passiert wenn es 2 Prozesse mit dem Namen runvdr gibt...


    Ob man jetzt "töte alle Prozesse mit namen runvdr",
    oder "such die pid von runvdr und kill den Prozess mit dieser pid" nimmt
    sollte bei einem runvdr ziemlich gleich sein.


    Elegant wirds wenn man sich die pid beim starten merkt und diese dann gezielt killt.


    Argh... Hö Hö...
    Grad erst gesehen,
    ... ein nettes "killall sh" beendet das script...
    klar, das Script und wohl alle anderen auch...


    Und äh, runvdr... gibts die auch bei Debian?
    Imho gibts die beim zenslack etc...

  • Entschuldigung, habs abgeändert.
    Wie gesagt bin noch am lernen und so hat es hier halt ohne negative Nebeneffekte funktioniert.
    Gegen killall switch.sh ist doch nichts einzuwenden? Oder?


    Vielen Dank für die erklärungen...., Wirklich!

    Gen2vdr; Gigabyte GA-K8NF9-Ultra Rev1.0, AMD 64 3700+@1400Mhz, 1,2 V, 2,0 Giga Ram, Geforce 6800 ac silencer bios mod, WD 250 GB, (dualboot XP/ Gen2vdr), Seagate 200 GB (video), Technisat Skystar 2 DVB-S, Technisat Airstar DVB-T


    Ausgabe: Xineliboutput-sxfe auf LCD

Jetzt mitmachen!

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