Neues Shutdown Konzept

  • Moinsen,


    also unser Austrian Coder hat sich da ja mal ein eines Shutdown Konzept
    für unsere VDRs ausgedacht, aber wie funktionierts eigentlich?


    Also VDR 1.3.14-r1 und nvram-wakeup-0.97 habe ich installiert,
    in der /etc/conf.d/vdr ist für den shutdown das Script
    /etc/vdr/vdrshutdown.sh eingetragen.


    Die hab ich mal ausführbar gemacht und auf der Console ausgeführt,
    nix passiert.


    Dann hab ich in /etc/conf.d/vdr.shutdown eingestellt,
    dass ich nvram hab und lilo verwende.


    Wenn ich jetzt auf der FB den großen roten Knopf drücke,
    passiert ebenfalls nichts, im Log steht
    das der shutdown gecancelt wurde weil 0 User eingeloggt sind.


    Sind 0 User nicht so gut wie niemand bzw. Keiner?


    Also was muss man wo einstellen damit sich der VDR wieder
    automatisch ausschaltet und zur Aufnahme auch wieder rechtzeitig aufwacht?

  • Ich bin auch schon am Basteln. Das '0 User'-Problem liegt IMHO an einem kleinen Bug in vdrshutdown-check.sh in der Zeile 26:
    test "$(who | wc -l) != 0" &&
    die eigentlich heissen muesste:
    test "$(who | wc -l)" != "0" &&
    da der erste Ausdruck _immer_ 'true' auswertet...


    Beim 'autoshutdown' (Zeile 35-40) fehlt ausserdem eine Abfrage, ob der Shutdown denn nun manuell oder automatisch ist. Ich hab das Script fuer meine Zwecke angepasst:


    vdrshutdown-check.sh


    Cya, Ed


    Edit: Typo in Code (auskommentierte Zeile)

  • Wenn Du schon dabei bist: das Ueberpruefen laufender Prozesse ist nicht ganz idiotensicher. Wie ich gerade feststellen musste, kann man einen laufenden emerge nicht ueber "pidof emerge" feststellen, da der emerge ueber "/usr/bin/python -O /usr/bin/emerge" gestartet wird (portage-2.0.51) :/


    Cya, Ed

  • Weiss nicht, ob das noch zur 'Minute' kommt, aber nach ein bisschen suchen und experimentieren hab ich doch noch ein lockfile gefunden: /tmp/sandboxpids.tmp
    Dieses wird offenbar bei jedem emerge angelegt (ich habe es mit und ohne FEATURES="sandbox" getestet) und auch vom Tool genlop zur Detektierung laufender emerges genutzt.


    Cya, Ed

  • Guten Abend meine Herrn,


    also irgendwie mag er immer noch nicht runterfahren

    Code
    $ vdrshutdown.sh
    /usr/bin/vdrshutdown-check.sh: line 31: unexpected EOF while looking for matching `"'
    /usr/bin/vdrshutdown-check.sh: line 34: syntax error: unexpected end of file
    /usr/bin/vdrshutdown.sh: line 30: hwclock: command not found
    /usr/bin/vdrshutdown.sh: line 96: syntax error near unexpected token `elif'
    /usr/bin/vdrshutdown.sh: line 96: `elif [ -f /proc/acpi/alarm ] && [ ${USE_ACPI} == "yes" ]'

    Ist das Problem eher bei mir zu suchen oder wirklich am Script?

  • AnK: Der erste Teil Deiner Fehlermeldung laesst vermuten, dass du das Script fehlerhaft kopiert hast. Was den zweiten Teil betrifft....


    Austrian Coder: Was bei den Trockenlaeufen nicht aufgefallen ist, sind die Fehler in vdrshutdown.sh :-/
    In Zeile 37 ist die Pruefung der Variablen NVRAM_CONFIG fehlerhaft, die Zeile sollte lauten
    if [ "x${NVRAM_CONFIG}" != "x" ]


    Ausserdem muss in Zeile 44 "end if" durch "fi" ersetzt werden.


    Mit diesen Fixes faehrt mein Rechner endlich einwandfrei runter :)


    Cya, Ed


    EDIT: Korrektur, faehrt nicht runter... es fehlt naemlich vor diversen Befehlen wie nvram-wakeup und shutdown noch ein sudo.

  • Hi,
    da das Script bei mir zumindest unter dem User vdr ausgeführt wird, musste ich einige Änderungen vornehmen:


    1. /sbin ist nicht im Pfad von normalen Usern, also immer die Befehle mit Pfad angeben ( /sbin/hwclock )


    2. Da nur root einige Befehle aufrufen darf (hwclock, halt, nvram ...) musste ich noch die sudoer-liste anpassen.


    Dann waren noch ein paar kleinere Syntax-Fehler drin.


    Eine Frage: Bei der Abfrage ob User eingeloggt sind, benutzt du ein logischen und ( && ). Hat das bestimmte Gründe? Da es dabei bei mir Probleme gab, hab ich das in ne if-Anweisung umgeschrieben (was meiner Meinung auch verständlicher ist).


    Ciao
    Andy

    MS-Tech MC-380 ATX / Asrock H61M / Intel Pentium G630 / Geforce GT220 / 2x TechniSat CableStar HD2 / ArchLinux mit ArchVDR-Paketen

  • Quote

    Originally posted by AnK
    Guten Abend meine Herrn,


    also irgendwie mag er immer noch nicht runterfahren

    Code
    $ vdrshutdown.sh
    /usr/bin/vdrshutdown-check.sh: line 31: unexpected EOF while looking for matching `"'
    /usr/bin/vdrshutdown-check.sh: line 34: syntax error: unexpected end of file
    /usr/bin/vdrshutdown.sh: line 30: hwclock: command not found
    /usr/bin/vdrshutdown.sh: line 96: syntax error near unexpected token `elif'
    /usr/bin/vdrshutdown.sh: line 96: `elif [ -f /proc/acpi/alarm ] && [ ${USE_ACPI} == "yes" ]'

    Ist das Problem eher bei mir zu suchen oder wirklich am Script?


    Nachdem ich die r2 gesynct habe, bekomme ich den von Dir geschilderten Fehler auch. Ursache ist ein fehlendes Anfuehrungszeichen am Ende von Zeile 8 in vdrshutdown-check.sh. So wie es aussieht, ist die Zeile abgeschnitten worden (Cut&Paste-Artefakt?).


    Ich frage mich, ob der Aufruf von hwclock unbedingt ins shutdown-script muss, da die Gentoo-init-scripte die Uhr - sofern entsprechend konfiguriert - dieses beim Herunterfahren bereits erledigen.


    Cya, Ed

  • *g* Nur keine Hetze :) Ich hab inzwischen selbst etwas gebastelt. Die abgeschnittene Zeile habt ihr mir zu verdanken, wie ich inzwischen feststellen musste. Um ein weiteres peinliches Missgeschick zu vermeiden, hab ich meine korrigierten Scripte jetzt hochgeladen:


    vdrshutdown.sh
    vdrshutdown-check.sh


    Nicht getestet sind die Stellen mit grub-set-default und lilo, da mein System ueber diese Programme nicht verfuegt. Das Setzen der Systemzeit in vdrshutdown.sh habe ich auskommentiert. Ein Hinweis zu sudo findet sich in vdrshutdown.sh. Die Liste CMD_LST in vdrshutdown-check.sh ist vermutlich nicht vollstaendig, da ich nur meine 'abgeschnittene' Version vorliegen hatte. Ein laufender Emerge wird ueber das Vorhandensein der Datei '/tmp/sandboxpids.tmp' festgestellt.


    Cya, Ed

  • gut, dass ich nicht der einzige mit Problemen mit dem Script bin/war - habe schon an mir gezweifelt.


    Hatte am WE auch alle bereits angesprochenen Fehler beheben müssen. Dabei ist mir meine Version von Grub quergeschossen, da sie das savedefault nicht ganz richtig interpretiert (wie in der FAQ zu lesen ist). Daher sieht meine grub-savedefault Lösung so aus:


    ganz wichtig dabei ist, dass die Zeilen nach '<<EOF' NICHT eingerückt sind, denn sonst gibt's Fehler (unexpected EOF, o.ä.).


    Vielleicht hilft's ja dem einen oder anderen.
    Chriss

  • @AustrianCoder
    mja, kann sein - hast Du ja auch geschrieben/hatte ich ja auch gelesen. Aber auf meinem alten System hat es so geklappt und bevor ich wieder Zeit investiere, das Neue zu testen, dachte ich mir, 'nimm' doch den alten Kram'. In den nächsten Ferien werde ich dann mal umstellen. Und wie gesagt: Evtl. gibt es ja noch mehr, bei denen das ähnlich ist.
    Trotzdem danke für den Hinweis (macht mir nur wieder ein schlechtes Gewissen, doch noch etwas tun zu müssen ?()


    Schöne Grüsse
    Chriss

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!