pythonでシグナルの捕獲
signalモジュールを使用すると、プロセスに送信されたシグナルを捕獲して任意の動作ができる。
以下は、TERMシグナルをゲットして、文字列を表示した例。
$ cat waite_signal.py #! /usr/bin/python import signal def handler(signum, frame): print 'signal(%s) gettchu!' % signum signal.signal(signal.SIGTERM, handler) signal.pause() $ ./waite_signal.py & [1] 387 $ kill 387 signal(15) gettchu!
さすがにKILLシグナルはゲットできないみたい。
>>> import signal >>> def handler(signum, frame): ... print 'signal(%s) gettchu!' % signum ... >>> signal.signal(signal.SIGKILL, handler) ------------------------------------------------------------ Traceback (most recent call last): File "<ipython console>", line 1, in <module> RuntimeError: (22, 'Invalid argument')