私は、いくつかのプロセスとデータベース接続を開始する Python スクリプトに取り組んでいます。時々、Ctrl+Cシグナルでスクリプトを終了し、クリーンアップを行いたいと思っています。
Perl では次のようにします:
$SIG{'INT'} = 'exit_gracefully';
sub exit_gracefully {
print "Caught ^C \n";
exit (0);
}
Python でこれと同様のことをするにはどうすればよいでしょうか?
ベストアンサー1
ハンドラーを登録する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
、ここ。