Ich möchte ein Skript ausführen, wenn die Kopfhörer getrennt werden, aber ich lehne die Idee ab, den Status ständig abzufragen, wenn bereits Code ausgeführt wird, wenn er geändert wird.
headphones
soundcard
monitoring
int_ua
quelle
quelle
DBUS_SESSION_BUS_ADDRESS
die Umgebungsvariable mit einem Skript, mit dem begonnen wurde, in eine Datei in Ihrem Homedir schreiben~/.config/autostart/dbus.desktop
. Dann können Siesu YOURUSER -c "DBUS_SESSION_BUS_ADDRESS=$(cat ~/.dbus_address) amixer ......."
von/etc/acpi/your-script.sh
Die aktuelle Version Ihres Skripts enthält jetzt einen
sleep 0.25
Befehl.sleep
ist timerbasiert, verwendet also keine Verarbeitungszyklen im Schlaf…Es wird zwar ein sehr kleines Stück CPU zum Einrichten des Timers verwendet, aber
sleep 1
(1 Sekunde schlafen),sleep 60
(eine Minutesleep 86400
schlafen ) und (einen Tag schlafen) verwenden alle die gleiche Anzahl von CPU-Zyklen.Die Verwendung von ACPI ist jedoch die perfekte Lösung, da ACPI ereignisgesteuert statt abrufgesteuert ist.
quelle