2011-08-09 9 views

答えて

18

signal handlersをご覧ください。 CTRL-CはSIGINT(posixシステムのシグナル#2)に対応します。

例:

#!/usr/bin/env python 
import signal 
import sys 
def signal_handler(signal, frame): 
    print 'You pressed Ctrl+C - or killed me with -2' 
    sys.exit(0) 
signal.signal(signal.SIGINT, signal_handler) 
print 'Press Ctrl+C' 
signal.pause() 
+0

注:OS: – wim

+0

@wim、良い点、おかげで 'kill -2 [pid]'に行くときにシグナルハンドラを打つ必要があります。私の答えにヒントを追加しました。実際にはkillを区別する方法があります殺すことによって殺すからキーボードによって? – miku

+1

私は前者がPythonで 'KeyboardInterrupt'例外を発生させるのを見ましたが、後者はそうではありません。しかし、なぜこれがそうであるかの実装の詳細についてはわかりません。 – wim

5

try: 
    # Your normal block of code 
except KeyboardInterrupt: 
    # Your code which is executed when CTRL+C is pressed. 
finally: 
    # Your code which is always executed. 
関連する問題