让我们假设我们用python编写了这样一个简单的守护进程:
def mainloop():
while True:
# 1. do
# 2. some
# 3. important
# 4. job
# 5. sleep
mainloop()
我们使用start-stop-daemon守护它,默认情况下发送SIGTERM (TERM)信号在——stop上。
让我们假设当前执行的步骤是#2。此时,我们发送TERM信号。
结果是执行立即终止。
我发现我可以使用signal.signal(信号。SIGTERM,处理程序),但问题是它仍然中断当前执行并将控制传递给处理程序。
所以,我的问题是-是否有可能不中断当前的执行,而是在一个分离的线程中处理TERM信号(?),以便我能够设置shutdown_flag = True,以便mainloop()有机会优雅地停止?