跳转至

2.响应程序退出消息

源码

Python
import time
import signal
from datetime import datetime


# 声明全局变量
app_exit_signal = 0


# 系统信号处理函数
def handle_sigterm(signum, frame):
    global app_exit_signal
    app_exit_signal = signum

if __name__ == '__main__':
    # 注册信号处理函数
    signal.signal(signal.SIGTERM, handle_sigterm)
    signal.signal(signal.SIGUSR1, handle_sigterm)

    # 循环打印当前时间
    while True:
        current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        print("Hello from Python, [{}].".format(current_time))
        time.sleep(1)
        if app_exit_signal != 0:
            # 判断是否接收到kill信号,如果是,则退出循环
            # killall python3时,app_exit_signal=15
            # killall -9 python3时,python3进程会被强制退出
            # killall -10 python3时,app_exit_signal=10;!!!注意:在重启应用、重启网关时,python进程会收到该消息
            print("app exit signal: [{}]".format(app_exit_signal))
            break
    # todo something when exit