Shutdown lässt sich nicht abschalten

  • Hallo zusammen,


    ich habe Debian Lenny mit vdr-devel auf einem permanent laufenden Server installiert. Alles funktioniert soweit sehr gut, wenn da nicht die lästigen Shutdowns wären.
    Ich habe in der /etc/default/vdrdevel den Shutdown disabled, zeitweise auch mal versucht per Hook es zu stoppen in dem ich ein "exit 0" in /etc/vdrdevel/shutdown-hooks/S90.custom eingetragen hatte aber einige Zeit nach einem Restart des vdrdevel per "/etc/init.d/vdrdevel restart" sehe ich in den Logs immer ein "Nov 22 07:08:05 server vdrdevel-shutdown: Shutdown deactivated (see /etc/default/vdrdevel)" und dann kann er keinen Channel mehr wechseln bzw. keine Aufnahmen mehr machen. Hintergrund ist, dass er auf dem OSD anzeigt, das er herunterfahren möchte. Habs nicht mehr wörtlich im Kopf aber da steht dann was von "vdr shutdown".
    Jetzt hatte ich sogar die ganz harte Variante versucht und in der /usr/lib/vdrdevel/vdrdevel-shutdown zu Anfang ein "exit 0" eingefügt aber auch das bringt es nicht. Jetzt bin ich ein wenig verweifelt, weil ich keine Lust habe vor jeder Aufnahme per Cronjob den vdrdevel durchzustarten. :-((


    Ich möchte einfach nur, dass vdrdevel ohne zu stoppen durchläuft und dann Aufnahmen macht, wenn der Timer es vorgibt, inkl. evtl. Channelwechsel. Any Ideas?


    Gruß + vielen Dank,
    U-Rise

  • Wenn Du die Zeit für den Shutdown in den Einstellungen des VDRs auf "0" stellst, fährt der VDR nie automatisch herunter.

    ASUS M4A78LT-M GL | AMD Athlon II X2 250 | 2GB RAM | Asus ENGT430 | Digital Devices OctopusNet mit 2 x Digital Devices DuoFlex S2 | PS3Remote | yaVDR 0.6.1

  • Zitat

    Jetzt hatte ich sogar die ganz harte Variante versucht und in der /usr/lib/vdrdevel/vdrdevel-shutdown zu Anfang ein "exit 0" eingefügt


    Bei Linux bedeutet der Rückgabewert 0 Erfolg. Also wird der VDR hier mit dem shutdown fortfahren. Erst ein exit 1 sollte es ihm hier abgewöhnen.

    Grüße


    Hannemann

  • Zitat

    Original von U-Rise
    Hallo Bop,


    ich hatte im OSD schon mal geschaut, ob ich was zum Shutdown finde aber offensichtlich war ich blind - kannst du mir sagen in welchem Menüpunkt ich das finde?


    Gruß * Dank,
    U-Rise


    Im VDR selbst habe ich folgende Einstellungen vorgenommen :
    Menü (Taste'M'), dann
    System /Einstellungen / Sonstiges : VDR ausschalten bei Inaktivität : 0 (kein automatisches Abschalten)
    Die Eingaben werden einfach mit <Enter> gespeichert.


    Quelle : www.partyfotos.de/vdr


    Grüße Bernd

    VDR : POV Atom 330-1 Mainboard, MSI TV@nywhere Satellite II, 2 GB RAM, natürlich mit yaVDR 0.61. Heimkino mit Onkyo AVR, Nubert-Surround-Boxen und JVC Beamer mit 4K und HDR. HD-VDR für Newbies: www.partyfotos.de/vdr

  • Halllo Hannemann,


    danke für den Hinweis aber der Wert "0" bezieht sich unter Linux auf den Rückgabewert an die Shell, was den Fehlercode betrifft. In dem Fall ist "exit" der entscheidene Punkt, der die shell, in der das Script läuft beendet und damit eine weitere Ausführung verhindert.
    Aber da es das eh nicht gebracht hat, habe ich das wieder rückgängig gemacht.


    Gruß,
    U-Rise

  • Hallo Bernd,


    danke auch für deinen Hinweis, dauert leider bis ich Erfolg sehe (glaube ich).
    Ich hab den vdrdevel mit englischer Unterstützung laufen, da heisst es dann Setup, Miscellaneous und dort gibt es drei Parameter, User, SVRDP und Inaktivität - alle drei hab ich jetzt mal auf Null gesetzt. Im Log wirft er zwar weiterhin "vdrdevel-shutdown: Shutdown deactivated (see /etc/default/vdrdevel)" raus aber bisher hat er noch nichts auf dem OSD angezeigt, was ein eingreifen des Users benötigt, um den Kanal wieder wechseln zu können.


    Derzeit mache ich alles über vdradmin-am, hat den Vorteil, dass ich auch per SSH von überall aus über den Squid die Timer programmieren kann, ohne es per NAT ins Internet stellen zu müssen.


    Gruß,
    U-Rise

  • Zitat

    Original von U-Rise
    Halllo Hannemann,


    danke für den Hinweis aber der Wert "0" bezieht sich unter Linux auf den Rückgabewert an die Shell, was den Fehlercode betrifft. In dem Fall ist "exit" der entscheidene Punkt, der die shell, in der das Script läuft beendet und damit eine weitere Ausführung verhindert.
    Aber da es das eh nicht gebracht hat, habe ich das wieder rückgängig gemacht.


    Gruß,
    U-Rise


    Mein VDR läuft jedenfalls ganz normal weiter, wenn ich einen Shutdown-Hook mit 'exit 1' beende oder habe ich Dein Anliegen falsch verstanden?

    Grüße


    Hannemann

  • Hallo Hannemann,


    nein, mein Anliegen hast du nicht falsch verstanden aber leider hilft es mir nicht, weil es nicht das tut, was ich erwarte. Ich habe mich aber wohl auch unklar ausgedrückt.


    Mit Script meinte ich den shutdown hook und nicht vdr selbst. Ziel des shutdown hook scripts ist, den shutdown zu verhindern, deshalb wird er am Anfang des Shutdown Scripts von VDR aufgerufen.
    Man kann sich das so vorstellen, dass es einen festprogrammierten Teil gibt, der den Shutdown regelt, das ist unter "/usr/lib/vdrdevel/vdrdevel-shutdown" zu finden. Hier sollte der User tunlichts nicht dran rumfummeln (auch wenn ich es getan habe).
    Nun kann es aber sein, dass jemand (wie ich z. B.) keinen Shutdown möchte, weshalb es einen Teil für den User gibt, den er verändern kann. Dieser liegt unter "/etc/vdrdevel/shutdown-hooks/S90.custom" und der wird im o. g. inkludiert mit den Befehlen im Script:
    SHUTDOWN_HOOKS_DIR=/usr/share/vdrdevel/shutdown-hooks/
    und
    shutdownhooks=`find $SHUTDOWN_HOOKS_DIR -maxdepth 1 -xtype f | sort`
    for shutdownhook in $shutdownhooks; do
    ....


    (Ich habe es gekürzt, ist noch mehr...)


    Wenn man nun den Shutdown verhindern möchte, sollte ein "exit" ausreichen, was bei mir aber - warum auch immer - nicht hilft. Zusätzlich kann man dem "exit" noch einen Rückgabewert oder Exit-Code mitgeben, was dann durch weitere Scripte ausgewertet werden könnte. Exit Codes sind hier beschrieben:
    http://www.ostc.de/howtos/shell-exit-code-HOWTO.txt


    Wenn ich nun ein "exit 0" mache bedeutet das lediglich, dass der Exit immer ohne Fehler beendet wird und bei deiner Variante "exit 1" wird der Exit eben mit einem Wert beendet, der als Fehler interpretiert werden würde.


    Hoffe ich konnte die Exit Codes einigermaßen erklären, ansonsten bitte Googlen und nach einer verständlicheren Ausführung als meiner suchen ;)


    Trotzdem vielen Dank für deinen Hinweis, gegenseitge Unterstützung ist immer wichtig.


    Gruß,
    U-Rise

  • Hallo zusammen,


    da ich gestern eine wichtige Aufnahme hatte, hatte ich kurz vorher per Cronjob den vdrdevel durchgestartet aber heute Morgen konnte der Kanal Problemfrei gewechselt werden. Bis zur nächsten Aufnahme am Samstag werde ich jeden Tag einmal testen, ob ich den Kanal wechseln kann und werde dann Feedback geben, ob es wirklich geholfen hat.


    Gruß + Dank,
    U-Rise

  • Moin U-Rise,


    danke für die Aufklärung... Das wäre aber wirklich nicht nötig gewesen ;)


    Ich gehe mal davon aus, das die Shutdown-Skripte von VDR und vdrdevel identisch sind:

    In Zeilen 31 bzw 34 werden die einzelnen Shutdown Hooks ausgeführt und in Zeile 36 der Rückgabewert in der Variablen $result gespeichert.


    Ist dieser Rückgabewert nicht 0 (prüfung in Zeile 38 ) wird das Skript in Zeile 42 abgebrochen.


    Da das Shutdown Kommando, gespeichert in $SHUTDOWNCMD erst in Zeile 54 ausgeführt werden würde, folgt daraus, das ein Rückgabewert ungleich 0 dazu führt, das der Rechner eben nicht heruntergefahren wird.


    Wie man in einen kleinem Testcase nachprüfen kann ist der Rückgabewert eines Skriptes das lediglich durch 'exit' beendet wird 0. Daher musst Du, wenn Du den Weg über einen Shutdown-Hook gehen willst, diesen mit einem exit [1-9]+ beenden.
    Testskript test:

    Bash
    #!/bin/sh
    
    
    exit


    ./test; if [ $? -ne 0 ]; then echo nicht 0; else echo ist 0; fi

    Grüße


    Hannemann

Jetzt mitmachen!

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