Как выполнить некоторый определенный набор операторов, когда Ctrl + C сделан для приложения Flask? - PullRequest
0 голосов
/ 07 мая 2019

У меня запущено приложение Flask, которое также создает контейнеры. Как только я нажму Ctrl + C, я хочу, чтобы все запущенные контейнеры были убиты.

У меня уже есть определенная функция, которая убивает работающие контейнеры, и она работает. Она называется remove_con (port_number)

У меня есть список активных портов, на которых работают мои контейнеры.

Когда я нажимаю Ctrl + C, я хочу перебрать этот список и вызвать remove_con для каждого порта. И тогда программа должна остановиться

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

В 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/

0 голосов
/ 07 мая 2019

Проверьте это. Вам придется использовать сигнал для захвата принудительного завершения работы приложения, а затем передать обработчик для функциональности.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...