Python: поймать команду Ctrl-C. Подсказка «действительно хочу выйти (да / нет)», возобновить выполнение, если нет

У меня есть программа, которая может иметь длительное исполнение. В основном модуле у меня есть следующее:

import signal
def run_program()
   ...time consuming execution...

def Exit_gracefully(signal, frame):
    ... log exiting information ...
    ... close any open files ...
    sys.exit(0)

if __name__ == '__main__':
    signal.signal(signal.SIGINT, Exit_gracefully)
    run_program()

Это хорошо работает, но ямне понравилась возможность приостановить выполнение при перехвате SIGINT, запросить пользователя, если он действительно хотел бы выйти, и возобновить с того места, где я остановился в run_program (), если они решат, что не хотятне хочу бросать

Единственный способ, которым я могу думать об этом, - запустить программу в отдельном потоке, заставив основной поток ждать его и готовый перехватить SIGINT. Если пользователь хочет выйти из основного потока, он может выполнить очистку и уничтожить дочерний поток.

Есть ли более простой способ?

Ответы на вопрос(1)

Ваш ответ на вопрос