2
其他模塊我有一個功能,它負責在程序結束時殺死一個子進程:引用在atexit對
class MySingleton:
def __init__(self):
import atexit
atexit.register(self.stop)
def stop(self):
os.kill(self.sel_server_pid, signal.SIGTERM)
但是我得到的,當這個函數被調用的錯誤消息:
Traceback (most recent call last):
File "/usr/lib/python2.5/atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File "/home/commando/Development/Diploma/streaminatr/stream/selenium_tests.py", line 66, in stop
os.kill(self.sel_server_pid, signal.SIGTERM)
AttributeError: 'NoneType' object has no attribute 'kill'
看起來像os
和signal
模塊在atexit
被調用之前被卸載。重新導入它們可以解決問題,但是這種行爲對我來說似乎很奇怪 - 在我註冊我的處理程序之前導入了這些模塊,爲什麼在我自己的退出處理程序運行之前它們被卸載?