我已经用python为raspberryPi编程好几个月了,我正试图让我的脚本“表现良好”,并在收到SIGTERM时打包(关闭文件,确保没有对SD的任何写入)。在
根据关于SO(1,2)的建议,如果我手动终止进程(即kill{process number}),我可以处理SIGTERM,但如果我发送shutdown命令(即shutdown-t30 now),我的处理程序永远不会被调用。在
我还尝试注册所有的信号,并检查正在发送的信号关闭事件,但我没有得到任何。在
下面是简单的示例代码:import time
import signal
import sys
def myHandler(signum, frame):
print "Signal #, ", signum
sys.exit()
for i in [x for x in dir(signal) if x.startswith("SIG")]:
try:
signum = getattr(signal, i)
signal.signal(signum, myHandler)
print "Handler added for {}".format(i)
except RuntimeError,m:
print "Skipping %s"%i
except ValueError:
break
while True:
print "goo"
time.sleep(1)
任何想法都将不胜感激。。=)