Archiv > Development
Windows Remote Control
clausmuus:
Hast Recht, hatte das while true vergessen. Das ganze hätte dann natürlich so aussehen müssen:
--- Code: ---echo "Starting inputlircd:"
{
while true; do
inputlircd -f $INPUTLIRC_ARGS
sleep 1
done
} >>/var/log/sysinit 2>&1 &
--- End code ---
Du kannst das zum testen einfach auf Deinem System ändern. Ich komme erst am Montag dazu das zu fixen.
Claus
iwow:
Hallo Claus,
bist du sicher, das bei deiner Lösung inputlirc beendet werden kann? Beendet ein /etc/init.d/inputlirc stop den inputlircd Profzess oder die Shell, die durch {...} neu gestartet wird und damit auch den inputlircd Prozess? Ich kenne mich in Shellprogrammierung nicht so tief aus . Deshalb habe ich den Ansatz wie bei /etc/init.d/vdr und /usr/bin/runvdr gewählt.
/etc/init.d/inputlirc sieht bei mir nun so aus:
--- Code: ---!/bin/sh
#
# Startet inputlirc
case "$1" in
start)
. /etc/init.d/rc.functions
echo "Starting inputlircd:"
if [ -e /var/run/runinputlirc.pid ]; then
runinputlirc -k
fi
{
runinputlirc >>/var/log/sysinit 2>&1 &
sleep 1
} >>/var/log/sysinit 2>&1 &
check_status
;;
stop)
. /etc/init.d/rc.functions
echo "Stoping inputlircd:"
rm -f /var/run/runinputlirc.pid
runinputlirc -k
check_status
;;
restart)
$0 stop
$0 start
;;
init)
start=1
before=vdr
#after=xorg
;;
*)
echo "Usage $0 {start | stop | restart}" >&2
exit 1
esac
--- End code ---
/usr/bin/runinputlirc:
--- Code: ---!/bin/sh
#
# run inputlirc
rm -f /tmp/inputlirc_stop
case "$1" in
-k)
touch /tmp/inputlirc_stop
killproc "/usr/sbin/inputlircd" 10
exit $?
;;
-r)
killproc "/usr/sbin/inputlircd" 10
exit $?
;;
-n)
norestart=1
;;
-*)
echo "Usage $0 {-k | -r | -q}"
echo " -k kill inputlirc"
echo " -r restart inputlirc"
echo " -n no restart if an error occur"
exit 1
;;
esac
echo $$ > /var/run/runinputlirc.pid
while (true) do
. /etc/rc.config
export LANG
export LC_ALL=$LANG
starttime=`date +%s`
# starte inputlirc
eval /usr/sbin/inputlircd -f $INPUTLIRC_ARGS
sleep 1
test -e /tmp/inputlirc_stop && break
echo -n "inputlirc exits at "; date
killproc "/usr/sbin/inputlircd" 0
test -e /tmp/inputlirc_stop -o "$norestart" = "1" && break
# schnelle wiederholte Neustarts verzoegern
if [ $starttime -gt $(( `date +%s` - 15 )) ]; then
sleep 10 # waiting for inputlirc
fi
done
rm -f /var/run/runinputlirc.pid /tmp/inputlirc_stop
--- End code ---
MarMic hat ja nun auch die gleiche MCE Fernbedienung wie ich. Werde mit Ihm am Montag Abend meine Konfiguration besprechen. Dann kann er ja die
clausmuus:
Hi,
das beenden einer Shell beendet nicht die eingeschlossenen Prozesse. In meinem Script wird jedoch nicht nur die Shell sondern auch der inputlircd beendet (wenn ich nict vergesen hatte das zu schreiben).
Von Daher müsste meine Lösung ebenso wie Deine funktionieren.
Claus
clausmuus:
Auch wenn wir das irgendwann schon mal besprochen/geklärt hatten, es sind einfach zu viele Baustellen gleichzeitig, um den
clausmuus:
OK, ich hab's mal schnell selber nachgelesen. Wenn Ich's richtig verstanden habe, werden Tastatur Events von ner Fernbedienung als Lirc Events bereitgestellt, ohne das zusätzlich nen Lirc Deamon laufen muss.
Da dafür keine /etc/lircd.conf benötigtwird, greift das eingesetzte Script zur
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version