satfind kontrolliert beenden - wie?

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

satfind kontrolliert beenden - wie?

Beitrag von tcf4004 »

Hi,

ich bastel gerade an einem Shellscript welches die Daten von Satfind
formatiert in eine Logdatei ausgibt (mit min/max-Werten usw.)

Dazu ist es nötig dass ich jeweils pro Sender satfind starte und nach
kurzer Zeit wieder beenden muss. Das Problem ist dass man offenbar
satfind nicht kontrolliert beenden kann. Denn egal ob via SIG 2, 9 oder 15
der Prozess terminiert wird, es erscheint sehr oft folgende Ausgabe im Log:

DVB: VES1820(0): ves1820_readreg: readreg error (ret == -121)
DVB: VES1820(0): ves1820_readreg: readreg error (ret == -121)
PCR discontinuity: PCR: 0x0864FA1CF, OLDPCR: 0x0864EE97D, Diff: 47186

Wenn satfind beim Terminieren des Prozesses gerade die Register
ausliest, kommt es zu obiger Fehlermeldung...
wäre ja an sich nicht weiter schlimm...nur wirken sich diese Fehler
sehr negativ auf die Stabilität der Box aus und irgendwann geht nix mehr
(I2C Bus blockiert). Das Ganze tritt unabhängig von Box und Image
auf, die Hardware ist also definitiv OK.
Einige ältere satfind-Binaries aus älteren Images habe ich auch schon
probiert, gleicher Effekt.

Kennt jemand eine Möglichkeit satfind sauber und ohne anschliessende
Fehlermeldungen zu beenden?

Wenn nicht könnte man ja vielleicht folgendes in den satfind-Source einbauen:

satfind legt beim Start eine Datei an, zB /tmp/.satfind
Solange diese Datei vorhanden ist läuft der satfind-Prozess.
Wird diese Datei gelöscht dann beendet sich satfind.

Ich kanns mangels Kenntnissen leider nicht selber einbauen/kompilieren...

Gruss
-tcf4004
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Code: Alles auswählen

/ # dvbsnoop --help
dvbsnoop  - a dvb/mpeg2 stream analyzer tool
Version: 1.3.84/api-3  (Jan 18 2005 21:08:39)
         http://dvbsnoop.sourceforge.net/
         (c) 2001-2005  Rainer Scherg  (rasc)

Usage:   dvbsnoop [opts] pid
Options:
   -demux device: demux device [/dev/dvb/adapter0/demux0]
   -dvr device:   dvr device [/dev/dvb/adapter0/dvr0]
   -frontend device: frontend   device [/dev/dvb/adapter0/frontend0]
   -s type:    snoop type or mode <type>  [-s sec]
                   stream type: sec, pes or ts
                   or special scan type:
                         pidscan = transponder pid scan,
                         bandwidth = data rate statistics for pid
                         signal = signal rate statistics
                         feinfo = frontend information
                 stream type or pidscan
   -timeout ms:  section read timeout in ms [-TIMEOUT 0]
   -maxdmx n:    max demux filters <n> to use in pidscan mode (0=max) [-maxdmx 0]
   -buffersize kb: read buffersize in KBytes  [-buffersize 0]
                 (0 = use default read buffer size)
   -f filter:    filtervalue for 'sec' demux [-f 0]
   -m mask:      maskvalue for 'sec' demux [-m 0]
   -crc:         CRC check when reading 'sec' [-nocrc]
   -nocrc:       no CRC check when reading 'sec' [-nocrc]
   -sync:        simple packet header sync when reading 'ts' or 'pes' [-snyc]
   -nosync:      no header sync when reading 'ts' or 'pes' [-snyc]
   -n count:     receive/read max. <count> packets (0=no limit) [-n 0]
   -spiderpid:   snoop referenced section pids (sets -n 1)
   -tssubdecode: sub-decode sections or pes from ts stream decoding
   -tsraw:       read raw/full TS in TS snoop mode
   -b:           binary output of packets (disables other output)
   -if file:     input file, reads from binary <file> instead of demux device
                  <file>="-" = /dev/stdin
   -ph mode:     data hex dump mode, modes: [-ph 4]
                   0=none, 1=hexdump, 2=hex line 3=ascii line 4=hexdump2
   -nph:         don't print hex dump of buffer [= -nohexdumpbuffer -ph 0]
   -hexdumpbuffer:   print hex dump of read buffer [-hexdumpbuffer]
   -nohexdumpbuffer: don't print hex dump of read buffer [-hexdumpbuffer]
   -pd verbose:  print stream decode (verbose level 0..9) [-pd 7]
   -npd:         don't print decoded stream (= -pd 0)
   -t[n|d|f]:    print timestamp (no, delta, full) [-tf]
   -privateprovider id: set provider <id> string for decoding private tables and descriptors
   -hideproginfo: hide copyright and program info header at program start
   -help:        this usage info...


Known private providers for private sections and descriptors:
 premiere.de
-n count: receive/read max. <count> packets (0=no limit) [-n 0]

BTW: <Ctrl>+<c> ist SIGQUIT (3)
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

Im Klartext:


dvbsnoop -s signal -n 100 -pd 9 > logfile

mit der option -pd [0..9] kann man die geschwaetzigkeit variieren....



oder scriptmaessig ausgedrueckt:


while true; do
dvbsnoop -s signal -n 50 >> logfile
szap blubber-next-chanel
done


Das nette daran ist, man koennte das Ganze dann noch einem einfachen Perl-/Shellscript und mit MRTG super graphisch aufbereiten lassen..


Nettes Beispiel: http://www.ce.unipr.it/~petrolin/livestreamer/

(ist zwar Italienisch, und auch noch Bandbreitenmessung, aber zeigt, was man mit wenig Aufwand machen kann - ist mit einer dvb-Karte gemacht)
tcf4004
Interessierter
Interessierter
Beiträge: 75
Registriert: Dienstag 23. März 2004, 10:58

Beitrag von tcf4004 »

@DieMade
@rasc

Vielen Dank Jungs! das dvbsnoop sieht echt sehr gut aus :D
Jetzt muss ich nur noch mein Skript ein wenig anpassen...

edit on
@DieMade
satfind mit SIG3 beenden gibt auch readreg-Errors...aber macht nix,
ich kenn ja jetzt dvbsnoop ;)
edit off

THX nochmal & Gruss,
-tcf4004
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Ups, satfind.....ich les schon nur noch dvbsnoop, das ist einfach das Schweizer Offiziersmesser ;)
There are 10 types of people in the world: those who know binary and those who don't