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

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

DDD
リリース: 2024-12-14 11:23:18
オリジナル
544 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート