我们希望当服务器接收到一个 SIGTERM 信号时能够自动关机,或者做一些善后的操作,以下是实现的方法

import signal


# 自定义信号处理函数
def my_handler(signum, frame):
    global stop
    stop = True
    print("进程被终止")


# 设置相应信号处理的handler
signal.signal(signal.SIGINT, my_handler)
signal.signal(signal.SIGHUP, my_handler)
signal.signal(signal.SIGTERM, my_handler)

stop = False

while True:
    try:
        if stop:
            # 中断时需要处理的代码
            break
    except Exception as e:
        print(str(e))
        break