首页 > 解决方案 > Flask 应用程序结束时如何执行函数?

问题描述

我正在构建一个 Flask 应用程序,并且想知道当用户基本上在结束应用程序时单击“Ctrl + C 或 X”时,我如何告诉它执行一个功能。对于这个例子,假设我只是想让它打开一个文件并向它写“完成”。这可能吗?

标签: python-3.xlinuxflaskweb-deployment

解决方案


程序终止的方式是通过系统发送的信号。信号的两个示例是SIGKILL对应于按下kill -9SIGINT对应于按下ctrl + c

你有一个 Python 的内置库signals,你可以在 Unix/Linux 中玩转信号。

只需使用导入库import signals,然后编写一个简单的回调函数,该函数在收到注册信号时运行。

信号处理函数示例:

def receiveSignal(signalNumber, frame):
print('Received:', signalNumber)
return

注册信号示例

signal.signal(signal. SIGKILL, receiveSignal)
signal.signal(signal.SIGINT, receiveSignal)

现在,每当您的程序收到注册的信号时,receiveSignal都会调用该函数,您可以处理写入文件然后退出那里的任务。

上面的例子取自 StackAbuse,你可以在这里找到完整的例子


推荐阅读