如何優雅地處理SIGTERM信號?
阿新 • • 發佈:2019-03-25
name bre killed spa 而是 pan false __main__ sign
不中斷當前的執行,而是在一個單獨的線程中處理signal,以便mainloop()有機會優雅地停止?
import signal import time class GracefulKiller: kill_now = False def __init__(self): signal.signal(signal.SIGINT, self.exit_gracefully) signal.signal(signal.SIGTERM, self.exit_gracefully) def exit_gracefully(self,signum, frame): self.kill_now= True if __name__ == ‘__main__‘: killer = GracefulKiller() while True: time.sleep(1) print("doing something in a loop ...") if killer.kill_now: break print "End of the program. I was killed gracefully :)"
如何優雅地處理SIGTERM信號?