Servus,
ich bin noch ziemlich am Anfang meiner RPi, usw-Karriere, aber ich suche dringend Rat bei einem Lösungsansatz zum automatischen Herunterfahren des RPi.
Aufbau:
RPi hängt am TV (CEC aktiviert) via HDMI und bekommt Strom vom USB-Hub vom Fernseher. Der Fernseher lässt sowohl LAN- UND USB-Verbindungen noch etwa 1,5 Minuten laufen, bevor er die Verbindungen kappt. Also fällt bei der Lösungsansatz zum herunterfahren via ping @ Fernseher, wenn aus, dann runterfahren weg..
AAAber....
Sobald der Fernseher aus ist, erhält der CEC-Power-Status schon das Update "standby", anstelle von "on".
Ich habe dazu folgendes Script geschrieben, welches per SSH sich problemlos ausführen lässt und auch funktioniert. Allerdings funktioniert es nicht, wenn ich es Cronjob, rc.local oder init.d starten lassen.
Beim Cronjob wird der Prozess zwar irgendwie unter "ps -ef | grep cec" mit aufgeführt, aber es passiert leider nichts......
Script wurde mit "chmod +x" ausführbar gemacht.....
#!/bin/sh
while :; do
command="echo pow 0 | cec-client -s -d 1 | grep 'power status' | awk '{split(\$0,a,\":\");print a[2]}' | sed 's/ //'"
status=$(eval $command)
if [ "$status" = "standby" ] ; then
echo "System wird heruntergefahren"
sudo shutdown -h now
exit
elif [ "$status" = "on" ] ; then
echo "System wird fortgesetzt"
fi
sleep 10
done
exit 0
Alles anzeigen
Zur Erklärung:
Der Script prüft Gerät 0 (idR immer der Fernseher selbst) auf dessen "Power Status", entfernt unrelevante Textausgaben, sodass nur noch der Status selbst, also z.B. "standby" übrig bleibt
Wenn der Status "standby" ist, dann soll der RPi sofort herunterfahren, wenn "on" dann einfach weiterlaufen (man kann das elif also auch weg lassen, hilft aber im Moment den Prozess auf Richtigkeit besser zu verfolgen"
Diese Abfrage nach dem Power Status erfolgt durch eine While-Schleife alle 10 Sekunden (soll später alle 30/45 bzw. 60 Sekunden erfolgen) und wird erst beendet, wenn der RPi herunterfährt.
Wie gesagt, per SSH ausgeführt klappt alles reibungslos und tut absolut das, was es soll, doch per "Autostart" eingefügt, passiert nüscht
Irgendwelche Vorschlage?