1. ホーム
  2. python

[解決済み] PythonでSIGINTを捕捉するには?

2022-03-16 09:31:38

質問

いくつかのプロセスやデータベース接続を開始するPythonスクリプトを作成しています。時々、このスクリプトを Ctrl + C のシグナルが表示されるので、クリーンアップを行いたいと思います。

Perlではこうする。

$SIG{'INT'} = 'exit_gracefully';

sub exit_gracefully {
    print "Caught ^C \n";
    exit (0);
}

Pythonでこれと同じことをするにはどうしたらいいですか?

どのように解決するのですか?

ハンドラの登録は signal.signal のようにします。

#!/usr/bin/env python
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()

を参考にしたコードです。 ここで .

に関するその他のドキュメント signal をご覧ください。 こちら .