我們希望當服務器接收到一個 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
