Je veux exécuter un script lorsque le casque est déconnecté, mais je suis hostile à l'idée de interrogation constante de l'état du code lorsqu'il est déjà exécuté lorsqu'il est modifié.
Dans la plupart des systèmes, sinon tous, ACPI peut gérer cet événement. Pour tester cela:
acpi_listen
_Débranchez et rebranchez les écouteurs, exemple de sortie: (micro/oreilles partagent la même prise sur mon ordinateur portable)
_jack/headphone HEADPHONE unplug
jack/microphone MICROPHONE unplug
jack/headphone HEADPHONE plug
jack/microphone MICROPHONE plug
_
Mettez _your-script.sh
_ dans _/etc/acpi/
_
Ajoutez un fichier déclencheur d'événement pour votre script dans _/etc/acpi/events/
_
_event=jack/headphone HEADPHONE unplug
action=/etc/acpi/your-script.sh
_
Vérifiez les autres fichiers là-bas pour apprendre.
Vous devrez peut-être redémarrer le service acpid
pour recharger les règles modifiées dans _/etc/acpi/events/
_
_Sudo service acpid restart
_
Référence: man acpid
La version actuelle de votre script contient maintenant une commande sleep 0.25
.
sleep
est basé sur un minuteur, donc n'utilisez pas les cycles de traitement en veille…
Il utilise un tout petit peu de processeur pour configurer le minuteur, mais sleep 1
(sommeil 1 seconde), sleep 60
(sommeil pendant une minute) et sleep 86400
(sommeil pendant une journée) Tous utilisent le même nombre de cycles CPU.
sing ACPI Cependant, la solution parfaite est la suivante: ACPI est piloté par les événements et non par les interrogations.