完了するまでに長い時間がかかるプログラムがあります。SIGINT
キャッチ(ctrl-c)してself.save_work()
メソッドを呼び出せるようにしたいと思います。
現状では、 プログラムが に到達するまでに が定義されていないため、 mysignal_hander()
は機能しません
。self
signal_handler()
self.save_work
の後に呼び出されるように設定するにはどうすればよいSIGINT
ですか?
#!/usr/bin/env python
import signal
def signal_handler(signal, frame):
self.save_work() # Does not work
exit(1)
signal.signal(signal.SIGINT, signal_handler)
class Main(object):
def do_stuff(self):
...
def save_work(self):
...
def __init__(self):
self.do_stuff()
self.save_work()
if __name__=='__main__':
Main()