[Raspberry Pi] Signalhandler für asynchrone Ereignisse verwenden: KeyboardInterrupt für STRG C abfangen

[enlighter lang=“python“]
import signal
import sys
import time

# Handler-Methode: Signal für KeyboardInterrupt abfangen
def sigint_handler(signal, frame):
print (‚–> KeyboardInterrupt abgefangen‘)
#Programm abbrechen, sonst läuft loop weiter
sys.exit(0)

if __name__==’__main__‘:
# SignalHandler registrieren: Unterbrechung über die Tastatur (CTRL+C) abfangen
signal.signal(signal.SIGINT, sigint_handler)

try:
while True:
print("–> Loop")
time.sleep(1)

except KeyboardInterrupt:
# wird nicht erreicht, da sigint_handler aufgerufen wird
print("–> KeyboardInterrupt")

finally:
print("–> finally")

print("–> Ende")
[/code]

Links