首页 > 其他 > 详细

如何优雅地处理SIGTERM信号?

时间:2019-03-25 11:37:03      阅读:144      评论:0      收藏:0      [点我收藏+]

不中断当前的执行,而是在一个单独的线程中处理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信号?

原文:https://www.cnblogs.com/tcppdu/p/10592615.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!