Jump to content

Neu: sectionsdcontrol


GetAway

Empfohlene Beiträge

Ich habe hier mal die aktuellste Version des sectionsdcontrol hochgeladen.

 

Mit sectionsdcontrol läßt sich der sectionsd über Konsole steuern.

Folgende Optionen sind möglich:

 

usage:  sectionsdcontrol --pause		 stop sectionsd
	sectionsdcontrol --nopause	   restart sectionsd
	sectionsdcontrol --state		 get sectionsd runstate
	sectionsdcontrol --wepg <epgdir> write epgfiles to dir
	sectionsdcontrol --repg <epgdir> read epgfiles from dir
	sectionsdcontrol --freemem	   unloads all events
	sectionsdcontrol --restart	   restart sectionsd (starts with pause!)
	sectionsdcontrol --ping		  ping sectionsd
	sectionsdcontrol --statistics	print statistics

 

Update auf V1.7 vom 28.11.08 / Thx seife

Log:

Add "--statistics" for console debugging of memory issues

 

sectionsdcontrol.rar

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 weeks later...

So, mal entstauben. :(

 

Passend zum sectionsdcontrol hab ich mal bissel gewerkelt und dem Teil eine benutzerfreundlichere Oberfläche verpaßt. ;)

 

Das Plugin schimpft sich ssdcontrol, ist für das blaue-Taste-Menü und das Keywelt-Oktober-2008 V1.1, damit habe ich das getestet, und es scheint nach etlichen Tests ordentlich zu laufen. In künftigen Images sollte es das dann auch tun. Bitte unbedingt die beigelegte readme.pdf lesen! Da stehen genauere Infos zum Plugin drin. sectionsdcontrol ist im Archiv mit enthalten, braucht also nicht nochmal extra runtergeladen werden. Alles zusammen belegt in /var keine 10kB.

 

Ist sicherlich noch einiges verbesserungswürdig, und manches wohl auch recht umständlich gescriptet, aber ich bin da nicht so der Script-Fritze. Frei nach dem Motto: "es funktioniert, und keiner weiß, warum". :P

 

EDIT: Neue Version v1.2 verfügbar!

 

ssdcontrol_v1.2.rar

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für deine Mühe. Ich hab dein Frontend mal in die Dez.Beta installiert.

Aber ich kann nur die Menüpunkte Gelb,2 und 4 anwählen. Welches Programm legt die Flags für die anderen Menüpunkte im TMP-Verzeichniss an? Was habe ich übersehen?

 

CU

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay, habs jetzt. Anfangs hatte ich das Plugin nur so eingebunden :

Wer will, kann den Inhalt der ssdcontrol.conf (den Bereich von

MENU= bis ENDMENU auch ins Keywelt Menü integrieren

Diesen Schrutz habe ich jetzt wieder rausgenommen und rufe das Plugin aus dem Keyweltmenü mit

ACTION=&Sectionsd Control Men~u,/var/plugins/ssdcontrol.sh

auf. Funzt soweit sehr gut. Anhalten, fortsetzen, neustarten, ist alles schön im Log ohne Fehlermeldungen mit zu verfolgen.

 

CU

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich kann nur die Menüpunkte Gelb,2 und 4 anwählen

Mit readme lesen wäre das nicht passiert. Ich weiß schon, warum ich extra darauf hinweise. :P

 

Anfangs hatte ich das Plugin nur so eingebunden :

Diesen Schrutz habe ich jetzt wieder rausgenommen und rufe das Plugin aus dem Keyweltmenü mit

ACTION=&Sectionsd Control Men~u,/var/plugins/ssdcontrol.sh

auf.

Vorsicht! Lasse die Finger von dieser Methode! Wenn, dann so:

ACTION=Sectionsd Control Men~u,/var/plugins/ssdcontrol.sh

Also das & vor dem Anzeigename weg. Hat folgende Gründe:

 

1. Hast Du sonst zwei Instanzen der shellexec gleichzeitig laufen, weil durch das & das aufrufende Keywelt Menü im Hintergrund offen gehalten und eine zusätzliche Instanz von shellexec durch die ssdcontrol.sh gestartet wird, was entsprechend CPU-lastig sein dürfte. Das ist noch das geringste Übel und würde so auch keine Probleme machen.

 

2. Bei Neustart des sectionsd bleibt die erste Instanz der shellexec (Keywelt Menü) im Hintergrund offen, nützt Dich aber durch den Neutrino-Kill und Neustart nichts, und Du kommst nach Neustart von Neutrino dort eh nicht mehr ran, weil der Framebuffer ebenfalls neu initialisiert wird mußt also warten, bis die Instanz der shellexec von selber ins Timeout läuft. Weiß jetzt nicht, ob es dafür eine Voreinstellung gibt, bei mir sind das 120 Sekunden. Oder schleunigst selber schließen (innerhalb von 15 Sekunden nach Aufruf des Sectionsd-Neustarts, danach wird Neutrino gekillt und das Menü ist damit auch nicht mehr sicht- und bedienbar). Also relativ sinnfrei, da eine Instanz der shellexec noch im Hintergrund zu haben.

Bei den anderen Funktionen passiert dieses Verhalten allerdings nicht.

 

3. Könnte dann die Funktion "sectionsd anhalten/fortsetzen" dem Keywelt Menü selber in die Quere kommen und unliebsamen Unsinn anrichten. Ist die Funktion KILLEPG= in der shellexec.conf. Was bringt's, wenn das Keywelt Menü den sectionsd anhält oder gar beendet, ein anderes Plugin dann aber wieder querpfuschen kann? Das ist kontraproduktiv und kann zu nicht vorhersehbaren Reaktionen führen. Dein Aufruf provoziert dann genau das.

 

Wenn ich's genau nehme, ist dann auch mein Hinweis, das Plugin überhaupt ins Keywelt Menü mit einbauen zu können, Unsinn. Sollte man also besser wirklich nur als blaue-Taste-Plugin verwenden, damit sind unliebsame Überraschungen ausgeschlossen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für deine Ausführungen. Hab ssdcontrol nun als blaue-Taste-Plugin installiert.

Wenn ich's genau nehme, ist dann auch mein Hinweis, das Plugin überhaupt ins Keywelt Menü mit einbauen zu können, Unsinn. Sollte man also besser wirklich nur als blaue-Taste-Plugin verwenden, damit sind unliebsame Überraschungen ausgeschlossen.

Sehe ich auch so :P

 

CU

Link zu diesem Kommentar
Auf anderen Seiten teilen

So, ich habe fertig. ;)

 

Version v1.1 ist da, hängt oben im 2. Beitrag an. Neu ist die Möglichkeit, das EPG-Speicherverzeichnis per Konfigurationsoption im Plugin-Menü einzutragen. Und die Readme wurde auch überarbeitet, liegt ab sofort als PDF bei. Und sollte unbedingt mal gelesen werden.

 

Wer das Plugin schon installiert hat: die drei Dateien in /var/plugins müssen ersetzt werden. Und beim nächsten Aufruf das Speicherverzeichnis nochmal konfigurieren, das wird ab sofort in einer eigenen Config abgelegt (wird beim ersten Start automatisch angelegt).

 

Wo ich noch ein kleines Problemchen habe: beim Ändern des EPG-Verzeichnisses kriege ich im Log eine Fehlermeldung, die ich irgendwie nicht los werde.

 

/var/plugins/ssdcontrol_op config_epgdir

/var/plugins/ssdcontrol_op: line 113: /var/autofs/epg: Permission denied

oder

/var/plugins/ssdcontrol_op config_epgdir

/var/plugins/ssdcontrol_op: line 113: /dammich: not found

(da hat mich nach etlichen Versuchen mal der Zorn gepackt :()

Die Fehlermeldung kommt immer dann (und nur dann), wenn das Verzeichnis geändert und gespeichert wurde. Korrekt gespeichert wir's aber, zeigt auch die abschließende Messagebox an. Das hier ist der Code-Ausschnitt des zuständigen Abschnitts in der ssdcontrol_op:

 

case "$1" in

(da ist noch mehr davor)

# epg-verzeichnis konfigurieren  ################
config_epgdir)
epgconfigdir=`grep -n "" /var/plugins/ssdcontrol_epgdir.conf | grep 1: | cut -f2 -d:`
inputstring=`input l='@@@@@@@@@@@@@@@@@@@@@@@@@' t='EPG-Verzeichnis' d=$epgconfigdir k=1 f=1 c=25 o=0 m=0 h=0`
if
$inputstring; then
msgbox title="Eingabe abgebrochen!" size=$FNT popup="EPG-Verzeichnis wurde ~Fnicht~S ge~andert"
else
rm /var/plugins/ssdcontrol_epgdir.conf
echo $inputstring > /var/plugins/ssdcontrol_epgdir.conf
epgnewdir=`grep -n "" /var/plugins/ssdcontrol_epgdir.conf | grep 1: | cut -f2 -d:`
msgbox title="none" size=$FNT msg="Neues Verzeichnis:~n~n$epgnewdir/"
fi
;;



esac

Zeile 113 ist das esac.

Wo kommen diese dämlichen Fehlermeldungen im Log her, und wie unterbinde ich die? Hat da von den Script-Experten einer mal eine gute Idee? :P

Link zu diesem Kommentar
Auf anderen Seiten teilen

"if $inputstring; then..." wird expandiert zu

"if /dammich; then..." und da /dammich oder /var/... kein executable ist, kommt "permission denied".

 

Vermutlich willst du 'if ![ "$inputstring" ]; then...' oder 'if [ -z "$inputstring" ]; then...' benutzen (das wären tests, ob $inputstring leer ist)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Urks :(

 

Jetzt wo Du das schreibst: freilich, soll überprüft werden, ob der Eingabestring leer ist. Mit

if [ -z "$inputstring" ]; then

funktioniert's jetzt einwandfrei. Danke für den Hinweis. Gibt dann nachher gleich eine korrigierte Version des Plugins.

 

Btw: gibt's irgendwo eine Dokumentation zu dem ganzen if then else Kram? Bin da bisher nicht so recht fündig geworden, oder hab wohl an der falschen Stelle gesucht? :P Und als Windows-Mensch in Linux auch nicht sooo firm. ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...