import sys, signal
sigterm_caught = False
def SignalHandler(signum, stackframe):
if signum == signal.SIGTERM:
sigterm_caught = True
sys.stdout.write("SIGTERM caught\n")
def SignalSetup():
signal.signal(signal.SIGTERM, SignalHandler)
signals.SignalSetup()
while signals.sigterm_caught == False:
sys.stdout.write("sigterm_caught=%s\n" % str(signals.sigterm_caught))
time.sleep(5)
我运行它,然后杀死进程,inside signals.py它获取信号,将sigterm\u catch设置为True,但是主进程中的循环没有看到sigterm\u catch值的变化。
(b) 我尝试引用模块中的变量时是否做错了什么?
(c)我是否应该以不同的方式处理信号,比如引发异常?
是通过引发异常来处理信号更好,还是我以前的C方法仍然有效?