Seit dem upgrade auf Kernel 3.13.0-43-generic habe ichd en effekt, dass ein Druck auf die Powertaste den Rechner binnen 2 Sekunden runterfährt und ausschaltet. Ich vermute das Problem hier:
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.
# Skip if we just in the middle of resuming.
test -f /var/lock/acpisleep && exit 0
# If gnome-power-manager or kded4 are running, let
# them handle policy This is effectively the same as 'acpi-support's
# '/usr/share/acpi-support/policy-funcs' file.
if pidof gnome-power-manager kded4 > /dev/null; then
exit
fi
if [ "0$(cat /tmp/powerbtn 2>/dev/null)" -lt "0$(($(date +%s)-1))" ]; then
date +%s > /tmp/powerbtn
/usr/bin/vdr-dbus-send /Remote remote.HitKey string:'Power'
exit
fi
# If all else failed, just initiate a plain shutdown.
/sbin/shutdown -h now "Power button pressed"
Alles anzeigen
Wenn ich den shutdown-Aufruf in der letzten Zeile auskommentiere, funktioniert es wieder wie vorher. Warum kommt es nicht zur Ausführung des vdr-dbus-send-Befehls? Meine bash-Kenntnisse reichen leider nicht, um die Bedingung zu verstehen. Wie ich recherchiert habe, geht der Code zurück auf einen Vorschlag von clausmuus und soll folgendes bewirken:
ZitatBei einmaligen Drücken des PowerButtons wird ein Power Event an den VDR geschickt, bei nem schnellen zweiten Drücken wird sofort nen shutdown ausgeführt.
Aber ich kann auf alle Fälle bestätigen, dass die Bedingung nicht zutrifft. Wenn ich es so teste:
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.
# Skip if we just in the middle of resuming.
test -f /var/lock/acpisleep && exit 0
# If gnome-power-manager or kded4 are running, let
# them handle policy This is effectively the same as 'acpi-support's
# '/usr/share/acpi-support/policy-funcs' file.
if pidof gnome-power-manager kded4 > /dev/null; then
exit
fi
if [ "0$(cat /tmp/powerbtn 2>/dev/null)" -lt "0$(($(date +%s)-1))" ]; then
svdrpsend MESG "if-Bedingung ist true!"
date +%s > /tmp/powerbtn
#/usr/bin/vdr-dbus-send /Remote remote.HitKey string:'Power'
exit
else
svdrpsend MESG "Bedingung ist nicht erfüllt!"
fi
# If all else failed, just initiate a plain shutdown.
#/sbin/shutdown -h now "Power button pressed"
Alles anzeigen
kriege ich beide OSD-Einblendungen. Heisst das nun, das einzelner Druck auf die Powertaste zu zwei acpi-events führt? Aber warum?
Jemand eine Idee, wie ich das näher debuggen kann?
Wenn ich den Power-Button drücke, wird in /tmp die powerbtn angelegt:
Ob das dann schon die zweite Datei ist, sehe ich natürlich nicht.