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