我有一个在 Debian 上运行的单线程 Python 2.7 守护程序/服务。我有一些禁用某些硬件功能的关键清理代码。
import sys
import atexit
import signal
from my_job import give_high_fives
from my_cleanup import prevent_the_apocalypse
atexit.register(prevent_the_apocalypse)
signal.signal(signal.SIGTERM, prevent_the_apocalypse)
signal.signal(signal.SIGHUP, prevent_the_apocalypse)
try:
while True:
give_high_fives()
finally:
prevent_the_apocalypse()
这看起来很偏执,而且我也不喜欢这么多次调用清理代码。现在看起来清理在SIGTERM
.
prevent_the_apocalypse
在所有可能的退出条件中是否有一种方法可以精确地一次?