ホームページ >バックエンド開発 >Python チュートリアル >Python プログラムで Ctrl C 割り込み (SIGINT) を適切に処理するにはどうすればよいですか?

Python プログラムで Ctrl C 割り込み (SIGINT) を適切に処理するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-14 11:23:18535ブラウズ

How Can I Gracefully Handle Ctrl C Interruptions (SIGINT) in My Python Program?

Python での SIGINT 信号のキャプチャ

Python では、SIGINT (Ctrl C を押すことで生成) のような信号の処理は、信号を通じて実現できます。モジュール。このモジュールは、Python プログラム内でシグナルを管理するための包括的な API を提供します。

SIGINT シグナルをキャプチャし、カスタム クリーンアップ アクションを実行するには、次の手順に従います。

import signal
import sys

def signal_handler(sig, frame):
    print('You pressed Ctrl+C!')
    # Perform any necessary cleanup tasks هنا
    sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
signal.pause()

このスクリプトでは、 signal_handler 関数は、SIGINT シグナルのハンドラーとして定義されます。 Ctrl C を押すと、この関数が呼び出され、信号が受信されたことを示すメッセージが出力されます。その後、データベース接続の終了や子プロセスの終了など、必要なクリーンアップ コードをこの関数内に含めることができます。

signal.signal 関数は、signal_handler 関数を SIGINT のハンドラーとして登録するために使用されます。 signal.pause() 関数は、シグナルが受信されるまでスクリプトの実行を一時停止し、ユーザーが Ctrl C を押すまで他のすべての操作を一時停止します。

このアプローチにより、Python スクリプトで SIGINT を適切に処理し、プログラムを終了する前にカスタム クリーンアップ タスクを実行します。詳細およびドキュメントについては、コード内にあるリンクを参照してください。

以上がPython プログラムで Ctrl C 割り込み (SIGINT) を適切に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。