[GELÖST] VDR Ausschalten über Menü Befehle - ohne Powerknopf!

  • Hallo,


    dass das Ausschalten des VDR über das Menü Befehle dazu führt, dass d. Skript "poweroff.pl" nicht aufgerufen wird, ist klar.
    Auch die Grunde dafür stehen gut dokumentiert hier http://www.vdr-portal.de/board/thread.php?threadid=6336


    Nichts desto Trotz würde ich gerne versuchen - mit Eurer Hilfe - das Problem zu lösen. Die Alternative, eine Fernbedienung mit
    Power-Taste zu benutzen ist mir bekannt; die möchte ich aber nicht realisieren, weil ich mit der kleinen original Nexus-FB klar komme.


    Eine Idee hätte ich, weiss aber nicht, ob's so klappen könnte, deswegen Frage ich die Profis unter uns...


    Könnte diese Zeile in der "commands.conf" die Lösung sein?


    Code
    Intelligent Ausschalten ? echo '/usr/bin/poweroff.pl' | at now + 2 minutes


    Das könnte doch dazu führen, dass das Menü wieder weg ist, und svdrpsend wieder ran darf... zumindest bilde ich mir das so ein :§$%


    Any idea?


    Danke und Grüße,
    monni

  • Hi,


    probiers mal, und poste das Ergebnis


    Grüsse Magicdragon67

  • Hallo herbsl,


    Zitat

    Original von herbsl
    srvdrsend.pl "hitk power"


    wird nicht funktionieren... weil... svdrpsend.pl ist das Problem! VDR kann pro Zeitpunkt nur eine Anfrage bearbeiten.
    Wenn Du auf Befehle gehst, und "Ausschalten" auswählst, dann wird intern auch svdrpsend.pl benutzt, um die Abfrage
    ("Sind Sie sicher, bla, bla, bla...") zu generieren. Und solange ist "die Leitung" halt geblockt.
    Deswegen funktioniert der direkte Aufruf von poweroff.pl auch nicht, weil dieser wiederum auch "svdrpsend.pl next abs" aufruft,
    um den Startpunkt der nächsten Sendung zu ermitteln - deutlich erkennbar ist im Log die Fehlermeldung "Broken pipe...".


    Deswegen habe ich gedenkt, poweroff.pl asynchron mit einem Zeitversatz von ~ 1-2 Minuten zu starten, um dem vdr Zeit zu geben
    die Connection abzubauen.


    magicdragon67: klar probier ich es mal aus. Bin aber im Moment weit vom VDR entfernt :(


    Danke und Grüße,
    monni

  • Vorschlag: Den svdrpsend-Befehl auch per "at" absetzen...


    Die Meldungen "Aufnahme läuft - wirklich herunterfahren" sowie "Taste Drücken um Shutdown abzubrechen" kommen im übrigen NICHT vom Shutdownscript via SVDRP, sondern aus dem VDR selbst. Auch der Zeitpunkt der nächsten Aufnahme wird vom VDR an das Script übergeben, und nicht von dem Script per SVDRP abgefragt. Zumindest üblicherweise.


    Sollte Dein Shutdown-Script wirklich so einen Murks machen wie Du beschreibst, würde ich zunächst hergehen, und das Shutdown-Script austauschen :]. Dafür gibt es die genannten Mechanismen (Abfrage vor Aufruf, Übergabe der Startzeit nächster Timer) schliesslich.

  • Moin LordJaxom,


    wir reden anscheinend aneinander vorbei... Die Meldung "Aufnahme läuft..." kommt vom VDR, das ist richtig.
    Aber...
    1. Wenn ich in der commands.conf ein Befehl "Ausschalten ? ..." habe, der bestätigt werden will, dann wird dieses über SVDRP abgewickelt.
    2. Wenn ich poweroff.pl aus der Shell aufrufe oder aus dem Befehle-Menü, dann übergibt VDR keine Startzeiten an das Skript - warum auch?!
    Deswegen ermittelt das Skript die Zeiten der nächsten Sendung mittels SVDRP. Es gibt selbst nichts aus!


    Wenn man 1 + 2 zusammenlegt kommt im Log "Broken pipe..." heraus, weil vdr nur einen thread für svdrp zur Verfügung stellt.


    Wie richtig angemerkt wurde, würde VDR auch alles machen, wenn man ein Power-Button hätte: mit poweroff.pl aufrufen, mit den richtigen Zeiten, etc.
    Der Grund für diesen Thread war das nicht vorhanden sein der Taste.


    Die Idee den svdrpsend-Befehl per "at" abzusetzen finde ich sogar besser als meine ursprüngliche Idee:
    In dem Fall würde VDR checken, ob z.B. noch eine Aufnahme läuft... beim Direkten aufruf von poweroff.pl nicht.


    Stand der Dinge - folgendes muss ausprobiert werden:

    Code
    Intelligent Ausschalten ? echo '/usr/bin/svdrpsend.pl hitk Power' | at now + 2 minutes


    Tausend Dank und Grüße,
    monni

  • Probier doch mal:


    Zitat

    Ausschalten?: echo "sleep 5; svdrpsend.pl hitk power" | at now


    Dann hast Du nur 5 sec verzögerung, funktioniert bestimmt auch mit weniger.

    Athlon 1800+ - KT3 Ultra2 - 512 MB

    Samsung 200 GB - NEC 1300A

    Atric IR-Einschalter - GLCD 128x64

    Hauppauge Nexus + 2 x TT-Budget

    Debian/Etch - 2.6.22-6 - VDR-1.4.7 - Bigpatch


    Von Fachidioten für Fachidioten, 5 Buchstaben.

    LINUX?

  • Zitat

    Original von monni
    wir reden anscheinend aneinander vorbei... Die Meldung "Aufnahme läuft..." kommt vom VDR, das ist richtig.
    Aber...
    1. Wenn ich in der commands.conf ein Befehl "Ausschalten ? ..." habe, der bestätigt werden will, dann wird dieses über SVDRP abgewickelt.


    Nur um alles Aneinandervorbeireden auszuschliessen: Erstmal wird da nix per SVDRP abgewickelt, VDR fordert eine Bestätigung wenn ein Fragezeichen hinter dem Menübefehl steht und führt dann das Kommando aus :]


    Zitat


    2. Wenn ich poweroff.pl aus der Shell aufrufe oder aus dem Befehle-Menü, dann übergibt VDR keine Startzeiten an das Skript - warum auch?!


    Von der Shell nicht aber beim Aufruf als Shutdownscript für die Powertaste schon. Du sparst dadurch die SVDRP-Abfrage nach dem nächsten Timer innerhalb des poweroff-Scripts.


    Zitat


    Wie richtig angemerkt wurde, würde VDR auch alles machen, wenn man ein Power-Button hätte: mit poweroff.pl aufrufen, mit den richtigen Zeiten, etc.


    Ja, als Parameter ;D das meinte ich oben.


    Der Delay ist übrigens bei der Verwendung von "at" nicht wirklich nötig. Da VDR nach Ausführung von "at" das Menü sofort schliesst und svdrpsend.pl zudem bis zu einer Minute auf den Connect und die Beantwortung des Befehls wartet, reguliert sich das von selbst (habe ich selbst schon desöfteren angewendet).

  • ... ich seh' schon ... mein Problem ist fast schon gelöst ;)


    Zitat

    Erstmal wird da nix per SVDRP abgewickelt, VDR fordert eine Bestätigung wenn ein Fragezeichen hinter dem Menübefehl steht und führt dann das Kommando aus :]


    Da habe ich etwas wohl falsch verstanden... ?(
    Dazu kommt, dass ich, wenn ich aus der commands.conf direkt poweroff.pl aufrufe die o.g. Fehlermeldung bekomme.
    D.h. ich habe auch noch was falsches hineininterpretiert. ?(


    Da frage ich mich... wer oder was benutzt dann SVDRP zu dem Zeitpunkt?
    Ich verstehe das nicht, und das macht mich :sick


    Zusammenfassend sollte folgendes ausprobiert werden:

    Code
    Ausschalten ? echo "svdrpsend.pl hitk power" | at now


    Yeah, Dank und Grüße,
    monni

  • Zitat

    Original von monni
    Dazu kommt, dass ich, wenn ich aus der commands.conf direkt poweroff.pl aufrufe die o.g. Fehlermeldung bekomme.
    D.h. ich habe auch noch was falsches hineininterpretiert. ?(


    Da frage ich mich... wer oder was benutzt dann SVDRP zu dem Zeitpunkt?
    Ich verstehe das nicht, und das macht mich :sick


    Hmmmm... Das muss dann nicht zwangsläufig SVDRP sein. Wir haben ja festgestellt dass VDR solange wartet bis der Befehl abgeschlossen ist, bevor das Menü geschlossen wird (deshalb ja der Umweg über "at"). Ich könnte mir vorstellen, dass VDR dann poweroff.pl startet, poweroff.pl dann ja beginnt den Rechner herunterzufahren, also auch Prozesse beendet. Der VDR wartet dann darauf dass das Programm sich beendet, welches seinerseits VDR beendet. Ich denke dann hat das OS keine andere Wahl als einen von beiden "brutal" zu beenden was beim anderen dann zum Broken Pipe führen könnte
    *spekulier* ;D

  • ... ich spekuliere - basierend auf den Erkenntnissen, die ich gestern den ganzen langen Tag - Familie, es tut mir leid, Papa macht VDR - gesammelt habe, mit...


    Meine Skripte sind alle so umgebaut, dass sie geschwätzig sind, d.h. Meldungen von rcStart, rcShutdown, poweroff.pl landen auch im syslog.


    Nach meinem Verständnis, passiert beim direkten Aufruf von poweroff.pl aus Befehle heraus folgendes - so frei nach dem Log aus dem Kopf:
    executing '/usr/bin/poweroff.pl ...'
    dieser wiederum versucht svdrpsend.pl next abs auszuführen und bricht ab mit einer Fehlermeldung und der Angabe (svdrp.c, Zeile xyz).
    Wenn das geklappt hätte und das Skript nicht gestorben wäre, würde es im nächsten schritt busybox poweroff aufrufen, d.h.
    rcShutdown käme zum Tragen - aber soweit kommt er nicht. vdr läuft wie gehabt weiter.
    Dadurch, dass ich diese ominöse Zeile mit svdrp.c gelesen habe, meinte ich, dass svdrp von irgendwem irgendwie geblock wird.
    Ich hasse es, wenn ich etwas nicht verstehe X(


    Also, werde ich heute abend dieses Experiment abermals wiederholen, und einen Auszug des Logfiles posten... einfach zu Forschungszwecken :D


    Danke LordJaxom und Grüße,
    monni

  • Hallo,


    es funktioniert... vielen lieben Dank für die Tips Leute.
    So macht's einfach Spaß, weil aus einer recht dämlichen Idee eine super Lösung entstanden ist. :prost2


    Hier noch der Auszug aus dem Logfile zum Forschen - das passiert nämlich, wenn man poweroff.pl direkt aus dem Menü aufruft. Den Grund für die broken pipe kann ich mir noch nicht schlüssig erklären.


    Dummerweise kann man nicht unbedingt sagen, dass Einträge, die weiter oben stehen auch früher ausgeführt wurden. Zumindest nicht, wenn die Sekundenangaben gleich sind.


    Egal, ich darf nicht alles wissen, aber alles essen.


    Vielen Dank und Grüße,
    monni

Jetzt mitmachen!

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