我们希望当服务器接收到一个 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