Archiv > Development

Runvdr Startet Nicht Immer

<< < (2/8) > >>

clausmuus:
Das Boot Problem hat aber nun nicht's mit den

MarMic:
da ich nach 50ig neustarts nach der echo orgie in runvdr keinen fehler mehr hatte (denke ich wieder an nen bescheidenes timing problem)

habe nun rmcp angewandt und die runvdr so abgeändert -> next try

[code]#!/bin/sh
#
# run vdr

. /etc/init.d/rc.functions

rm -f /tmp/vdr_stop /tmp/vdr_quick_restart

case "$1" in
   -k)
  touch /tmp/vdr_stop
  killproc "/usr/bin/vdr" 10
  exit $?
   ;;
   -r)
  killproc "/usr/bin/vdr" 10
  exit $?
   ;;
   -q)
  touch /tmp/vdr_quick_restart
  killproc "/usr/bin/vdr" 0
  exit $?
   ;;
   -n)
  norestart=1
   ;;
   -*)
  echo "Usage $0 {-k | -r | -q}"
  echo "      -k   kill vdr"
  echo "      -r   restart vdr"
  echo "      -q   quick restart vdr"
  echo "      -n   no restart if an error occur"
  exit 1
   ;;
esac

#ps | grep "{${0##*/}}" | grep -v grep | grep -q -v $$ && { echo "${0##*/} is already running"; exit; }
ps | grep "{${0##*/}}" | grep -v grep | grep -v $$ && { echo "${0##*/} is already running"; echo $$; ps > /var/log/runvdr.log; exit; }

/etc/vdr/run.d/rc.action start
   
while (true) do
   . /etc/rc.config

   export LANG
   export LC_ALL=$LANG
   export VDR_CHARSET_OVERRIDE
   
   # check if a remote control must be enabled
   if ps | grep -v "grep" | grep -q "lircd" && (! test -e /usr/bin/vdr-sxfe || ! grep -sqi "^lirc." /etc/vdr/remote.conf); then
  VDR_ARGS="$VDR_ARGS --lirc"
   elif ls /etc/vdr/remote.rc* >/dev/null 2>&1 && [ -e /usr/bin/av7110_loadkeys ]; then
  VDR_ARGS="$VDR_ARGS --rcu"
   fi
   
   # update remote configuration file
   cat /etc/vdr/remote.conf.* 2>/dev/null >> /etc/vdr/remote.conf
   rm -f /etc/vdr/remote.conf.*
   mv /tmp/remote.conf.* /etc/vdr 2>/dev/null
   
   # check if a input device must be train
   if ! grep -sqi "^lirc." /etc/vdr/remote.conf && [ -z "${VDR_ARGS%%* --lirc}" ] ||
    ! grep -sqi "^rcu." /etc/vdr/remote.conf && [ -z "${VDR_ARGS%%* --rcu}" ] ||
    ! grep -sqi "^XKeySym." /etc/vdr/remote.conf ||
    ! grep -sqi "^kbd." /etc/vdr/remote.conf
   then
  echo "xineliboutput.OSD.Size = 720x576" >> /etc/vdr/setup.conf.add
   elif grep "xineliboutput.OSD.Size = 720x576" /etc/vdr/setup.conf; then
  echo "xineliboutput.OSD.Size = automatic" >> /etc/vdr/setup.conf.add
   fi
   
   # update vdr configuration file
   while read line; do
  sed "/${line%% *}/d" -i /etc/vdr/setup.conf
  echo "$line" >> /etc/vdr/setup.conf
   done 2>/dev/null < /etc/vdr/setup.conf.add
   rm -f /etc/vdr/setup.conf.add
   
   # activate selected channel list
   if [ -n "$VDR_CHANNELLIST" ]; then
  ln -fs /etc/vdr/channels/$VDR_CHANNELLIST.conf /etc/vdr/channels.conf
   fi
   
   # suche Plugins und Parameter zusammen
   plugins=""
   for plugin in $VDR_PLUGIN_ORDER `ls /usr/lib/vdr/libvdr* 2>/dev/null | sed 's/.*libvdr-([^.]*).*/1/'`; do
  if [ -z "`echo "$plugins" | grep -e "-P[^a-z]$plugin " 2>/dev/null`" -a -n "`ls /usr/lib/vdr/libvdr-$plugin* 2>/dev/null`" ]; then
     eval options=$VDR_PLUGIN_ARGS_$(echo "$plugin" | sed 's/-/_/g')
     plugins="$plugins -P"$plugin $options""
  fi
   done

   # wait for dvb adapters
   i=0; while [ $i -lt 10 -a ! -e /tmp/vdr_quick_restart -a $(ls -d /dev/dvb/adapter? 2>/dev/null | wc -l) -lt 0$VDR_DVB_ADAPTER_COUNT ]; do i=$(($i+1)); sleep 1 "#waiting for dvb adapters"; done
   update_setting "VDR_DVB_ADAPTER_COUNT" "$(ls -d /dev/dvb/adapter? 2>/dev/null | wc -l)"
   
   starttime=`date +%s`
   
   rm -f /tmp/vdr_quick_restart
   
   # starte vdr
   eval /usr/bin/vdr -s /etc/vdr/shutdown.d/rc.action -r /etc/vdr/recording.d/rc.action -w 60 -L /usr/lib/vdr -c /etc/vdr -v /data/tv/tv0 -g /tmp -u root $VDR_ARGS $plugins >>${VDR_STDOUT-/dev/stderr}
   
   test -e /tmp/vdr_stop && break

   if [ -e /tmp/vdr_quick_restart ]; then
  /etc/vdr/run.d/rc.action quick_restart
   else
  echo -n "VDR exits at "; date

  killproc "/usr/bin/vdr" 0

  test -e /tmp/vdr_stop -o "$norestart" = "1" && break

  # schnelle wiederholte Neustarts verz

MarMic:
@claus, soll die runvdr.log immer angelegt werden oder nur bei nem fehler? komme mit deinen schreibweisen als nicht klar?!

weil derzeit wird sie nicht angelegt aber es tut auch noch alles!

clausmuus:
die wird nur angelegt wenn der Fehler auftritt.

dieser Part prüft ob die runvdr bereits läuft:
ps | grep "{${0##*/}}" | grep -v grep | grep -v $$

das darauf folgende && besagt das der folgende Befehl nur ausgeführt werden soll wenn die Bedingung davor zutraf.

Und dieser Part wird dann ausgeführt (also wenn bereits eine runvdr läuft):
{ echo "${0##*/} is already running"; echo $$; ps > /var/log/runvdr.log; exit; }
die geschweiften Klammern sind nötig damit mehr als ein befehl hinter dem && stehen kann.

Du kannst das ganz einfach testen, indem Du nach erfolgreichem Start den Befehl "runvdr" aufrufst. Dann bekommst Du den Fehler angezeigt und die verantwortliche ps Zeile ausgegeben. Ausserdem wird die runvdr.log angelegt)

Claus

MarMic:
ja hatte ich bereits getestet auf die idee bin ich auch gekommen.

@claus, habe nun gefühlt 100mal rebootet -> keinen fehler mehr :-(

aber grossartig anders ist die runvdr ja nicht geworden (siehe oben)

einzige was anders ist:
durch meine echos mit dennen es geklappt hat
und nun durch die änderung von dir

wird die runvdr auf der festplatte gespeichert und nicht mehr durch aufs gemountet, oder?

seitdem habe ich bis jetzt noch kein problem festgestellt :-(

mich verwundert auch das hier:

--- Code: ---===done===
Setting up setup menu:
rm: can't remove '/usr/share/doc/fritzbox/setting': No such file or directory
rm: can't remove '/usr/share/doc/lcdproc/setting': No such file or directory
rm: can't remove '/usr/share/doc/setup/setting': No such file or directory
rm: can't remove '/usr/share/doc/xineliboutput/setting': No such file or directory

--- End code ---

beim nächsten mal steht drin

--- Code: ---===done===
Setting up setup menu:
===done===
Starting webserver:
===done===
Setting up web setup menu:
rm: can't remove '/usr/share/doc/lcdproc/setting': No such file or directory
===done===

--- End code ---

alles sehr sehr komisch...

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version