Heim > Backend-Entwicklung > Python-Tutorial > Wie gehe ich ordnungsgemäß mit SIGINT-Unterbrechungen in Python um?

Wie gehe ich ordnungsgemäß mit SIGINT-Unterbrechungen in Python um?

Patricia Arquette
Freigeben: 2024-12-25 22:36:14
Original
203 Leute haben es durchsucht

How to Gracefully Handle SIGINT Interruptions in Python?

Umgang mit SIGINT-Unterbrechungen in Python-Skripten

Bei der Arbeit mit Python-Skripten, die mehrere Prozesse und Datenbankverbindungen ausführen, erfolgt ein ordnungsgemäßer Beenden beim Empfang einer SIGINT-Unterbrechung (Strg C). oft wünschenswert. In diesem Fall ist es erforderlich, einen Handler für SIGINT zu registrieren, um die erforderlichen Bereinigungsaufgaben durchzuführen.

Python-Äquivalent zur SIGINT-Behandlung von Perl

Um das Analogon der SIGINT-Behandlung von Perl in Python zu erreichen, nutzen Sie die signal.signal Funktion als folgt:

import signal
import sys

def signal_handler(sig, frame):
    print('You pressed Ctrl+C!')
    sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
signal.pause()
Nach dem Login kopieren

Erklärung

  • Registrieren Sie den Handler: Die Zeile signal.signal(signal.SIGINT, signal_handler) weist die signal_handler-Funktion als vorgesehen zu Handler für alle SIGINT-Signale.
  • Signalhandler: Der Die signal_handler-Funktion wird beim Empfang von SIGINT ausgelöst. Hier wird eine Meldung gedruckt und das Skript ordnungsgemäß mit sys.exit(0) beendet.
  • Drucken und Anhalten: Nach der Registrierung des Handlers fordert das Skript den Benutzer auf, Strg C zu drücken. Der Aufruf signal.pause() blockiert das Skript, bis ein Signal empfangen wird.

Zusätzlich Ressourcen

  • [Signalmoduldokumentation](https://docs.python.org/3/library/signal.html)

Das obige ist der detaillierte Inhalt vonWie gehe ich ordnungsgemäß mit SIGINT-Unterbrechungen in Python um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage