!!!ACHTUNG!!!
V5 So, extra für Heiwil eine neue Version mit der Möglichkeit in der .conf-Datei ein externes Script anzugeben, das die über den Output des Scripts das Herunterfahren des VDR verhindern kann. Also wenn das Script nix sagt, gibt es keine Aktivitäten, der VDR wird runtergefahren. Das Script gibt "WASAUCHIMMER" als Output, der VDR wird nicht heruntergefahren, auf dem osd gibt es die Meldung: "Shutdown abgebrochen! Aktivitäten: WASAUCHIMMER". Viel Spaß! heiwil, hoffe du kommst so klar damit!
Neu: Paket neu geladen, wegen kleinem Bug! Sorry, betrifft aber nur osd-Message!
V4: Die OSD-Anzeige ist jetzt mit allen Events und in den .*eventfiles kann man hinter den eigentlichen Events einen Namen für das Event eintragen (durch Leerzeichen getrennt), damit man auf dem OSD nicht nur die Ports oder den namen von dem aktiven Task angezeigt bekommt. Beispiel ":3024 Vomp" Zeigt auf dem OSD Vomp an und "vdrburn.pl Burn" zeigt Burn auf dem OSD!
Außerdem bereite ich das Einbinden von externen Scripten vor, die als Abbruch-Grund benutzt werden können. Ist aber noch nicht endgültig durchdacht!
V3: Neu mit OSD-Info über den Grund des Abbruchs!
V2: Neues Paket!!! Jetzt mit der überwachung von aktiven Tasks!
Für die neue Version wird at benötigt, zu finden hier: http://pcgenie.de/linvdr/LINvd…%60s/at_3.1.8-11_i386.deb
Installieren mit debtool -f /pfad/zur/datei/at_3.1.8-11_i386.deb
Dann noch diese Zeileam ende der rcStart eintragen:
Weitere Installationsanweisung weiter unten beachten!!!
-------------------------------------------
Moin!
Ich habe mich die Tage mal mit den vorhandenen Möglichkeiten beschäftigt, den VDR daran zu hindern runter zu fahren, wenn noch Anwendungen (im Netzt) aktiv sind. Alles was ich gefunden habe hat mir nicht so 100%ig gefallen. Darum habe ich das hier geschrieben.
Grund für das schreiben dieses Scripts war eigentlich, dass mein VDR sich immer abschaltete während ich im Schlafzimmer über den MVP ferngesehen habe. Als ich dann einmal dabei war, habe ich dann noch mehr Netz-Dienste in meine Liste aufgenommen (z.B. ssh, ftp, Samba, streamdev…). Konsolen-Überwachung habe ich bewußt rausgelassen, da ich den VDR, wie wahrscheinlich die meißten nur über das Netzt bearbeite und mich nicht direkt an der Konsole anmelde!
Sinn dieses Scriptes ist es zwischen das eigentliche poweroff-Script (mit Timer setzen usw...) und das Poweroff-Event (egal ob Taste oder Timeout) geschaltet zu werden (keine Angst, ist nicht so kompliziert) um das wirkliche Runterfahren zu unterbinden, solange die Netzverbindungen aktiv sind. Die Möglichkeit das Herunterfahren von Hand (also per Taste) zu unterbrechen soll dabei aber erhalten bleiben, also auch die OSD-Mitteilung, dass ein Shutdown bevorsteht!
Also was macht das Script? Es wird in der Zeile in der der VDR gestartet wird als Parameter –s übergeben (also als das Script, das zum runterfahren genutzt werden soll; Installation siehe unten)! Wenn das Script jetzt aufgerufen wird, sucht es in den Netztverbindungen nach den Schlüsselwörtern in der Datei /etc/safepower.event und wenn eins davon gefunden wird, wird eine OSD-Nachricht ausgegeben und nach einer Minute (kann man in der safepower.conf ändern) wird erneut der Powerknopf gedrückt (und damit das Script neu aufgerufen).
Warum mache ich das so? Ich habe einfach versucht alle möglichen Szenarien zu bedenken. Nehmen wir an, das Script wird aufgerufen und bleibt dann solange in einer Schleife, bis die Netzverbindungen getrennt werden und fährt dann runter. Wenn aber in der Zwischenzeit eine Aufnahme angefangen hat….? Oder man hat bereits eine Aufnahme so überbrückt, dann würde die schleife den veralteteten Timer verwenden! Wenn ich aber den Powerbutton drücke, übernimmt der VDR für mich die Kontrolle, das keine Aufnahme läuft und kein Timer so kurz bevor steht, dass das Runterfahren überflüssig wäre und es wird immer der aktuell nächste Timer übergeben.
INSTALLATION:
1. Die Datei ins root entpacken (tar xjf /wo/ist/die/datei/safepower-0.0.2.tar.bz2 –C/)
2. In der runvdr (unter /etc/init.d bei Linvdr) die Zeile mit dem VDR-Aufruf suchen und so anpassen:
Zitat
$BINDIR/vdr -L $PLUGINDIR $PLUGINS $COMMON_PARAMETER -v /video0 -c $CONFDIR -u root -P'burn -i/pub/export/dvds' -w 900 -E /ramdisk/epg.data -s /usr/bin/safepower.sh -r /usr/bin/noadcall.sh < /dev/tty$VDRTTY
3. Die Datei /etc/safepower.conf und safepower.events an die eigenen Bedürfnisse anpassen. (wichtig, habe alle Beispiele auskommentiert!)
Kleiner Bonus, ich habe auch ein Script beigelegt, das wenn man es in das powerbtn-ACPI-Event einträgt den Rechner nicht gnadenlos ausschaltet sondern auch den VDR-Powerbutton benutzt! Auch sinnvoll, wenn man nicht unbedacht den VDR mitten in einer Aufnahme mit dem Powerknopf ausschalten will! Zur Installation einfach in der Datei /etc/acpi/events/powerbtn den Wert action auf /usr/bin/powerbutton.sh ändern.
So, hoffe ich habe nix vergessen und es funktioniert bei euch genauso gut wie bei mir! Getestet habe ich aber nur mit Linvdr, bei anderen Distributionen müsst ihr evt. Noch Anpassungen vornehmen! Würde mich natürlich über Feedback und Verbesserungsvorschläge freuen!
Gruß
Toxic
PS.: Wer das alles gelesen hat, hat meinen tiefsten Respekt!!