我想寫一個信號處理程序,它將從類變量中調用方法。如何在Python守護進程中的信號處理程序中調用類方法?
我的代碼看起來像這樣:
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異常。 我也嘗試過在主要內部定義處理異常的函數,並從信號處理程序中調用這些函數,但那也不起作用。
任何人都有如何實現這個想法?