Hallo zusammen,
also irgendwie raff ich es nicht.
Beim herunterfahren des VDRs soll gleichzeitig auch über das Beenden des Atmolight Plugin die LEDs ausgeschaltet werden. Das funktioniert auch immer, nur nicht wenn der VDR per FB ausgeschaltet wird.
Folgendes funktioniert:
- "/etc/init.d/runvdr stop" in der Shell eingegeben stoppt den VDR und schaltet das Atmolight aus
- "Menü/System/Einstellungen/Neustart"
Der VDR wird beendet (auch das Atmo) und neu gestartet.
- "Menü/Befehle/Ausschalten " funktioniert auch ohne Probleme - das Atmolight wird sauber auschgeschaltet
Wenn ich Ausschalten auf der FB drücke wird der VDR heruntergefahren aber das Atmolight nicht ausgeschaltet. Obwohl in der rcShutdown der VDR (angeblich) beendet wird.
Die vdr-logo-sequenz ("/etc/init.d/vdrlogo stop &&") wird ausgeführt.
Der nachfolgende "svdrpsend.pl" Befehl jedoch nicht, ausserdem wird beim Beenden des VDRs das Atmo nicht ausgeschaltet.
Was auch merkwürdig ist: Z.T. bleibt das Livebild bis kurz vorm Ausschalten des PCs noch aktiv- es scheint so als ob das "runvdr stop" nicht greift.
- Wo ist der Fehler beim "svdrpsend.pl Aufruf ?
- Wieso kann ich den VDR per Shell sauber beenden, nicht aber im Shutdown Script ????
- Hat jemand ne Idee für einen Workaround (z.B. beim drücken des Poweroff Button der FB wird ein Macro ausgeführt, welches das Atmo auschaltet und dann wie gehabt den Shutdown Prozess startet)
rcShutdown Script:
#!/bin/bash
ROOTDISK=/dev/hda1
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH
/etc/init.d/vdrlogo stop &&
/usr/bin/svdrpsend.pl "PLUG atmo OFF"
sleep 2
killall() {
SIG=$1
shift
kill $SIG $@ 2>/dev/null
}
# VDR stoppen
/etc/init.d/runvdr stop
sleep 2
killall -9 vdr >/dev/null 2>/dev/null
#sleep 1
#/etc/init.d/runvdr unloaddriver
rm -fr /var/cache/ramdisk/* 2>/dev/null
rm -fr /vtx/* 2>/dev/null
cp -a /ramdisk/* /var/cache/ramdisk
# Vorgezogener fsck, falls ein fsck innerhalb der nächsten 24h ansteht
RunFsck="false";
NextFsck=`tune2fs -l /dev/hda1 | grep "Next check after" | cut -d":" -f2-`
if [ `date -d "$NextFsck" +%s` -lt $[`date +%s`+86400] ]; then
/etc/init.d/runvdr loaddriver
RunFsck="true";
fi
#
OURPID=$$
INITPID=`ps -C init -o "%p" | tail -n 1`
PIDS=`ps axo "%p" | tac | grep -vw PID | grep -vw 1 | grep -vw $INITPID | grep -vw $OURPID`
killall -15 $PIDS
sleep 1
killall -9 $PIDS
sleep 1
swapoff -a
umount -a -r
# run fsck?
if [ $RunFsck == "true" ]; then
touch /etc/mtab
if [ $? -eq 0 ]; then
echo "root fs still mountet, skipping fsck!"
else
echo "Running fsck in advance"
stillimage 0 /usr/lib/vdr/stillimages/fsck-shutdown.mpg &
STPID=$!
fsck -y -f $ROOTDISK
echo "fsck done"
fi
else
echo "No fsck needed" >/dev/tty1
fi
kill -9 $STPID 2>/dev/null
Display More
Gruß
Paddy