You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Friday, October 19th 2007, 4:04pm

NoAD überwachen und beenden

Hallo,

hat eventuell jemand eine Idee bzw. ein Script wie man NoAD überwachen und nach einiger Zeit mittels "Kill" beenden kann?

Der Grund für die Frage ist das sich der NoAD Process manchmal nicht beendet. Wenn dies passiert wird dann auch der Shutdown vom Rechner durch VDR verhindert.

Bye
John
  • VDR#1: CoolerMaster ATX-620, MR Fortron 350 Watt ichbinleise®, FSC 1562, Celeron 2GHz, 256 MB, HD400LD, silentmaxx HD-silencer, LG GSA-4160B, Nexus-S, IR rev.4 von hirc, One-For-All URC-7040, Debian Etch, vdr 1.6.0-8ctvdr1
  • VDR#2: passiv Gehäuse von Hewlett600, VIA MII-12000, 256 MB, HD400LD, TT 1.5, One-For-All URC-7040, Debian Etch, vdr 1.6.0-8ctvdr1

2

Saturday, October 20th 2007, 11:45am

Hi,

habe gerade wieder das Problem, das der noad Prozess sich nicht beendet und somit der shutdown des VDR verhindert wird.

Im Logfile steht dann:
Oct 20 11:11:06 animah vdr-shutdown: executing /usr/share/vdr/shutdown-hooks/S50.noad as shell script
Oct 20 11:11:07 animah vdr-shutdown: /usr/share/vdr/shutdown-hooks/S50.noad requests to try again in 5 minutes

Im S50.noad shellscript wird mittels "ps -ae | grep -q noad" nachgeschaut ob es noch laufende noad Prozesse gibt und dann der shutdown abgebrochen.

Wenn ich den Befehl "ps -ae | grep -q noad" absetze sehe ich:
7452 ? 00:02:57 noad

Mit "ps ax | grep noad" sehe ich die Details:
7452 ? SNs 2:57 /usr/bin/noad --online=2 --background --OSD --comments --jumplogo --ac3 --overlap before /var/lib/video.00/Fantastic_Four_-_Die_gr??ten_Helden_aller_Zeiten/Die_kleinsten_Helden_der_Welt/2007-10-20.09.50.50.99.rec

Meines Erachtens liegt es an den Umlauten in der Aufnahme das sich noad nicht beendet.

Jetzt meine Frage an die Shell-Programmierer:
Gibt es eine Möglichkeiten das Script S50.noad so abzuändern das der shutdown durcheführt wird wenn es noch noad Prozesse nach dreimailiger Abfrage gibt? Also irgenwie einen Zähler mitlaufen lassen. Wenn der shutdown dreimal abgebrochen wurde wegen noad, dann fahr den Computer trotzdem runter.

Bye
John
  • VDR#1: CoolerMaster ATX-620, MR Fortron 350 Watt ichbinleise®, FSC 1562, Celeron 2GHz, 256 MB, HD400LD, silentmaxx HD-silencer, LG GSA-4160B, Nexus-S, IR rev.4 von hirc, One-For-All URC-7040, Debian Etch, vdr 1.6.0-8ctvdr1
  • VDR#2: passiv Gehäuse von Hewlett600, VIA MII-12000, 256 MB, HD400LD, TT 1.5, One-For-All URC-7040, Debian Etch, vdr 1.6.0-8ctvdr1

Urig

Professional

Posts: 1,223

Location: Kassel

  • Send private message

3

Saturday, October 20th 2007, 11:58am

Du kannst die maximale CPU-Zeit mit ulimit -t begrenzen, dann wird der Prozess nach Ablauf der Zeit automatisch abgeschossen. Ist natürlich schwer, hier vorab eine sinnvolle Obergrenze vorzugeben.

Siiehe -> bash manual.

Gruß,

Udo

4

Saturday, October 20th 2007, 12:43pm

Danke Urig.

Habe das noad Shellscript von diesem Posting abgeädert und probier es damit.

Ansonsten habe ich das Programm "Timeout" gefunden. Damit probier ich es wenn ulimit nicht funktionieren sollte.

Bye
John
  • VDR#1: CoolerMaster ATX-620, MR Fortron 350 Watt ichbinleise®, FSC 1562, Celeron 2GHz, 256 MB, HD400LD, silentmaxx HD-silencer, LG GSA-4160B, Nexus-S, IR rev.4 von hirc, One-For-All URC-7040, Debian Etch, vdr 1.6.0-8ctvdr1
  • VDR#2: passiv Gehäuse von Hewlett600, VIA MII-12000, 256 MB, HD400LD, TT 1.5, One-For-All URC-7040, Debian Etch, vdr 1.6.0-8ctvdr1

SHF

Sage

Posts: 3,862

Location: hessische Bergstrasse

  • Send private message

5

Saturday, October 20th 2007, 3:21pm

Quoted

Habe das noad Shellscript von diesem Posting abgeädert und probier es damit.
Wahrscheinlich löst das Skript auch ohne Änderung deine Probleme.
Bei mir hat sich NoAD immer dann nicht beendet, wenn das Speicher-Problem auftrat, die Beschränkung der Laufzeit war daher nicht nötig (das dürfte auch im Online-Modus von NoAD bringen).

Seit ich das Skript im Einsatz habe ist das Problem auch nicht wieder aufgetreten.
Gruss
SHF


Mein VDR:

vdr-1.4.3-4 mit BigPatch und Plugin BigPack, SuSE 9.0, Kernel 2.4.21, DVB Treiber 06.07.2005 FullTS-Patch, noad 0.6.1
auf HP Vectra VLi8 (PIII 500, 256MB), 16GB 2,5" SSD (Sytem und Swap), 2TB HDD* (Video), 1x TT FF DVB-S 1.5 FullTS-Mod, 1x TT Budget DVB-S

(* Weil ich das inzwischen öfters gefragt wurde: Nein, das BIOS erkennt die grossen Platten nicht vollständig, das stört Linux aber nicht!)

Posts: 2,805

Location: Landkreis Dahme-Spreewald (LDS)

  • Send private message

6

Saturday, October 20th 2007, 3:52pm

Hallo

Also das hatte ich ehrlich gesagt noch nie, das noad sich nicht von alleine beendet hat.

Außer, wenn man die Aufnahme, mit welcher noad gerade beschäftigt ist, gelöscht hat.

Im Wiki gab es dafür wohl nen Flicken:

http://vdr-wiki.de/wiki/index.php/Noad#N….C3.B6scht_wird

Source code

1
2
3
4
5
6
7
Noad beendet sich nicht, wenn während des Scans die Aufnahme gelöscht wird

Wenn eine Aufnahme gelöscht wird, während Noad läuft, bleibt der Prozess hängen und Noad beendet sich nie. Das kann dazu führen, dass sich der VDR nicht herunterfährt.

Abhilfe schaffen folgende Patches:

http://sources.gentoo.org/viewcvs.py/gentoo-x86/media-video/noad/files/patches-0.6.0/delete-while-scanning.diff http://sources.gentoo.org/viewcvs.py/gentoo-x86/media-video/noad/files/patches-0.6.0/hangcheck.diff 

Hatte aber vorher schon einen kleinen Schnippsel erstellt, der überprüft alle 5 Sekunden ob die Verzeichnisse zum PID noch existieren, falls nicht wird der entsprechende PID gekillt (benötigt: ps, pidof, screen), hatte es ans jeweilige wrapper skript angehangen.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
if ! screen -ls | egrep -q noadwatch ; then
    screen -dmS noadwatch sh -c "while pidof noad ; do \
	for i in \$(pidof noad) ; do \
	    sleep 5s ; ARGS=\$(ps --no-heading -p \$i -o %a) ; \
	    if [ ! -d \"\${ARGS##* }\" -a -n \"\${ARGS##* }\" ] ; then \
		if ps -p \$i ; then \
		    kill -9 \$i ; \
		fi ; \
	    fi ; \
	done ; \
    done"
fi


Aber ich glaube, das da oben ^^^^^^^^^ alles dürfte, mit ulimit obsolete sein.

Danke für den TIP.

MFG Ronny

This post has been edited 1 times, last edit by "ronnykornexl" (Oct 20th 2007, 3:54pm)


SHF

Sage

Posts: 3,862

Location: hessische Bergstrasse

  • Send private message

7

Saturday, October 20th 2007, 4:05pm

Quoted

Original von ronnykornexl
Also das hatte ich ehrlich gesagt noch nie, das noad sich nicht von alleine beendet hat.

Außer, wenn man die Aufnahme, mit welcher noad gerade beschäftigt ist, gelöscht hat.
Ist mir auch schon bei fehlerhaften Aufnahmen (Gewitter oder so) passiert.

Quoted

Im Wiki gab es dafür wohl nen Flicken:
Den gab es damals, als mich NoAD peinigte, leider noch nicht.
Gruss
SHF


Mein VDR:

vdr-1.4.3-4 mit BigPatch und Plugin BigPack, SuSE 9.0, Kernel 2.4.21, DVB Treiber 06.07.2005 FullTS-Patch, noad 0.6.1
auf HP Vectra VLi8 (PIII 500, 256MB), 16GB 2,5" SSD (Sytem und Swap), 2TB HDD* (Video), 1x TT FF DVB-S 1.5 FullTS-Mod, 1x TT Budget DVB-S

(* Weil ich das inzwischen öfters gefragt wurde: Nein, das BIOS erkennt die grossen Platten nicht vollständig, das stört Linux aber nicht!)