对Flask应用程序执行Ctrl + C后,如何执行某些特定的语句集?

时间:2019-05-07 10:48:56

标签: python flask

我有一个正在运行的Flask应用程序,它也在创建容器。一旦按下Ctrl + C,我希望杀死所有正在运行的容器。

我已经定义了一个函数,该函数可以杀死正在运行的容器并且可以正常工作,它称为remove_con(port_number)

我有一个运行我的容器的活动端口的列表。

当我执行Ctrl + C组合键时,我想遍历该列表并为每个端口调用remove_con。然后程序应该停止

我该如何实现?

2 个答案:

答案 0 :(得分:0)

检查一下。您将不得不使用信号来捕获应用程序的强制关闭,然后传递用于该功能的处理程序。

https://docs.python.org/2/library/signal.html#signal.CTRL_C_EVENT

答案 1 :(得分:0)

Python中有一个名为atexit的库。您可以在程序关闭之前使用该库来调用清理函数。

import atexit
ll=[1,2,3,4,5]

def remove_numbers(ll):
    for i in ll:
        ll.remove(i)


if __name__="__main__":
    atexit.register(remove_numbers,ll)  #first argument is the function name followed
                                        #by all the params 

您可以执行一项以上的功能。

参考:https://pymotw.com/2/atexit/