Shutdown per Power Button: Unterschied zwischen den Versionen
Geli (Diskussion | Beiträge) |
Geli (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 22: | Zeile 22: | ||
1 total rule matched | 1 total rule matched | ||
completed input layer event "button/power PBTN 00000080 00000000" | completed input layer event "button/power PBTN 00000080 00000000" | ||
Das bedeutet, dass die Prozedur '''powerbtn-acpi-support.sh''' durchlaufen wird, aber nicht bis zum shutdown-Befehl kommt, sondern zuvor durch if-Abfragen mit exit 0 verlassen wird. Warum das so ist, kann sicher untersucht werden, mir reicht aber, dass bei Knopfdruck ein shutdown | Das bedeutet, dass die Prozedur '''powerbtn-acpi-support.sh''' durchlaufen wird, die aber nicht bis zum shutdown-Befehl kommt, sondern zuvor durch if-Abfragen mit exit 0 verlassen wird. Warum das so ist, kann sicher untersucht werden, mir reicht aber, dass bei Knopfdruck ein shutdown durchgeführt wird.<br /> | ||
'''acpid''' sollte jedenfalls wieder gestartet werden: | '''acpid''' sollte jedenfalls wieder gestartet werden: | ||
sudo service acpid start | sudo service acpid start |
Aktuelle Version vom 28. Januar 2023, 18:53 Uhr
Diese Beschreibung bezieht sich sich nicht auf den Raspberry Pi, sondern auf einen Server mit Debian Bullseye.
Ziel ist das Abschalten des Rechners durch Druck auf den Einschaltknopf und ohne zuvor ein Login durchzuführen. Hat man eine grafische Oberfläche installiert, kann man versuchen, über das Energiemenü das gewünschte Verhalten einzustellen.
Falls man bei einem Test aber festgestellt hat, dass nach einem kurzen Druck auf den Power Button nichts passiert, kann man dieser Anleitung folgen. Es ist keineswegs ratsam mehrere Sekunden auf den Power Button zu drücken, denn das heißt abschalten durch Stromentzug und ist nicht ratsam.
Server mittels ACPI herunterfahren
Zuerst wird ACPI installiert:
$ sudo apt-get install acpid
Das sollte es eigentlich gewesen sein. Falls aber durch Test nach wie vor nichts passiert, kann man einen Workaround implementieren. Informationen findet man z.B. hier: https://www.geeksforgeeks.org/acpid-command-in-linux-with-examples/
Die Konfigurationsfiles findet man hier:
/etc/acpi bzw. /etc/acpi/events
In dem Ordner events befindet sich die Datei powerbtn-acpi-support mit folgendem Inhalt:
event=button[ /]power action=/etc/acpi/powerbtn-acpi-support.sh
D.h. der event ist der Druck auf den Power Button, die action ist die Ausführung der bash-Prozedur. Man kann nun überprüfen, ob diese Prozedur überhaupt ausgeführt wird. Dazu stoppen wir acpid im Hintergrund, starten den daemon im Vordergrund und schalten auch das Logging ein:
sudo service acpid stop sudo acpid -f -l
Damit läuft acpid im Terminalfenster. Jetzt sollte bei Druck auf den Power Button etwas passieren. In meinem Fall erscheint zweimal die Meldung
received input layer event "button/power PBTN 00000080 00000000" rule from /etc/acpi/events/powerbtn-acpi-support matched executing action "/etc/acpi/powerbtn-acpi-support.sh" action exited with status 0 1 total rule matched completed input layer event "button/power PBTN 00000080 00000000"
Das bedeutet, dass die Prozedur powerbtn-acpi-support.sh durchlaufen wird, die aber nicht bis zum shutdown-Befehl kommt, sondern zuvor durch if-Abfragen mit exit 0 verlassen wird. Warum das so ist, kann sicher untersucht werden, mir reicht aber, dass bei Knopfdruck ein shutdown durchgeführt wird.
acpid sollte jedenfalls wieder gestartet werden:
sudo service acpid start
Workaround
Dieser besteht darin, in der Prozedur /etc/acpi/powerbtn-acpi-support.sh am Beginn folgendes einzufügen:
# workaround shutdown /sbin/shutdown -h -P now "Power button pressed" exit 0
Damit sollte ein shutdown nach kurzem Knopfdruck unmittelbar durchgeführt werden.