runvdr extreme Geschrieben von: Udo Richter Projekt Homepage: http://www.udo-richter.de/vdr/scripts.html#runvdr Siehe Datei COPYING für Lizenz-Informationen Über -------------------------------------------------------------------------- runvdr extreme ist ein runvdr-Skript, genau wie das runvdr-Skript aus der VDR-Distribution. Es ist nur rund 17 mal größer. Einige der Features von runvdr extreme: - Lädt die Grundkonfiguration aus runvdr.conf - Die gesamte Konfiguration kann per Kommandozeile gesetzt werden - Alle VDR-Optionen werden unterstützt - Verwaltet runvdr.pid Datei, reagiert auf Signale - Startet VDR im Falle von Fehlern neu - Kommandos, um VDR neu zu starten und DVB-Treiber neu zu laden - Beim VDR-Neustart wird die Konfiguration erneut gelesen - Vermeidet endlose Schleifen, wenn VDR sofort stirbt - Setzt Terminal zurück nachdem VDR beendet wurde - Starten von Wrapper-Programmen zum Debuggen - Wartet bis der VDR-Prozess beendet wurde, hartes Beenden nach Timeout - Kommandozeilenhilfe - Kann Konsole umschalten - Kann Landessprache für VDR setzen - Unterstützt Pluginsetup-Plugin optional Schnellstart -------------------------------------------------------------------------- - Kopiere runvdr nach /usr/local/bin/ oder wo-auch-immer-du-magst - Kopiere runvdr.conf.example nach /etc/runvdr.conf, wenn runvdr als Server laufen soll, oder nach ~/.runvdr.conf, wenn runvdr durch einen Benutzer gestartet werden soll. - Bearbeite /etc/runvdr.conf nach deinem Bedarf Die runvdr.conf ist größtenteils selbsterklärend. Alle Optionen sind auch per Kommandozeile verfügbar, siehe runvdr --help. Details -------------------------------------------------------------------------- Die Optionen werden in dieser Reihenfolge ausgewertet: 1. Kommandozeilenoptionen haben höchste Priorität. 2. runvdr.conf auf Kommandozeile mit -C oder --runvdr-conf angegeben 3. Wenn kein -C und kein --runvdr-conf angegeben, benutze ~/.runvdr.conf 4. Wenn kein -C und kein --runvdr-conf un kein ~/.runvdr.conf, benutze /etc/runvdr.conf 5. Wenn keine der obigen Dateien existiert, benutze runvdr-Defaults Nur eine runvdr.conf wird normalerweise geladen, und nur eine -C Option wird ausgewertet. Man kann aber den Inhalt einer runvdr.conf in einer anderen runvdr.conf laden, wenn man die INCLUDE-Direktive verwendet. Man kann zum Beispiel /etc/runvdr.conf aus der Datei ~/.runvdr.conf heraus laden, um für den aktuellen Benutzer einige Einstellungen zu überschreiben. Plugins, die durch die AddPlugin-Direktive in der conf-Datei oder die --plugin oder -P Option geladen werden, können von der Plugin-Liste wieder entfernt werden, wenn man "AddPlugin -name", --plugin="-name" oder -P-name verwendet. Der name-Teil wird dabei als Muster für den Anfangsteil des Plugin- Namens verwendet, alle Plugins, die auf "name*" passen, werden entfernt. Insbesondere hebt "AddPlugin -" und -P- die gesamte bisherige Plugin-Liste auf. Der selbe Mechanismus funktioniert auch beim -D Device-Parameter. Um Parameter an VDR direkt weiter zu geben, ohne dass runvdr sie interpretiert, kann -- als Parameter angegeben werden. Alle Parameter nach -- werden unverändert an VDR weiter gegeben. So gibt "runvdr -- --help" die Hilfestellung von VDR aus, und nicht die Hilfestellung von runvdr. Voraussetzungen -------------------------------------------------------------------------- Unix-Kommandos, die runvdr benutzt: Kommando Debian-Paket pgrep procps ps procps kill procps sleep coreutils date coreutils chvt console-tools getopt util-linux setterm util-linux Beispiele -------------------------------------------------------------------------- Wenn die Standardeinstellungen in /etc/runvdr.conf vorgenommen sind, hier ein paar coole Dinge, die man tun kann: Starte VDR im Hintergrund (zum Beispiel mit TERMINAL=/dev/tty8 in conf-Datei): runvdr & Stoppe VDR und das runvdr-Skript: runvdr --terminate Dito, aber warte bis VDR beendet ist: runvdr --terminate --wait Starte den bereits laufenden VDR-Prozess neu, weil er hängt, oder weil die runvdr.conf geändert wurde: runvdr --restart Dito, aber lade auch die DVB-Treiber neu: runvdr --dvb-restart Benutze den frich neu übersetzten VDR zum ersten mal: runvdr --vdr=/usr/src/vdr-1.5.0/vdr --lib=/usr/src/vdr-1.5.0/PLUGINS/lib Zum Debuggen, starte VDR ohne Terminalumlenkung: runvdr --terminal="" --switchterminal="" Lade alle Plugins, und zusätzlich das hello-Plugin: runvdr -P hello Lade nur das hello-Plugin: runvdr -P- -P hello Lade alle Plugins, aber nicht das hello-Plugin: runvdr -P-hello Starte einen Testlauf von runvdr, um zu sehen was passiert: runvdr --wrapper=echo Starte eine Debugging-Session: runvdr --wrapper="gdb --args" Starte mit einer komplett abweichenden Konfiguration: runvdr --runvdr-conf="/etc/runvdr-debugging.conf"