我正在尝试编写一个信号处理程序,它将从类变量中调用方法。
我的代码如下所示:
import daemon
class bar():
def func():
print "Hello World!\n"
def sigusr1_handler(signum,frame):
foo.func()
def main():
foo = bar()
context = daemon.DaemonContext(stdout=sys.stdout)
context.signal_map = {
signal.SIGUSR1: sigusr1_handler
}
with context:
if (__name__="__main__"):
main()
这行不通。当我在守护程序上执行 kill -USR1 时,Python 会引发 NameError 异常。我还尝试在 main 中定义处理异常并从信号处理程序调用这些函数的函数,但这也不起作用。
有人对如何实现这一点有想法吗?