KeyboardInterrupt не работает, перехвачен терминалом - PullRequest
0 голосов
/ 15 мая 2019

Мой скрипт на python построен на основе try-кроме того, что мой начальный код запускается в блоке try. У меня есть печать (''), чтобы остановить выполнение кода остальной части кода в блоке try. Это позволяет моей программе завершать работу самостоятельно, если во время запуска возникают какие-либо ошибки в программах или аналогичных программах. Однако, когда моя программа приостановлена ​​и работает нормально, когда я нажимаю CTRL-c, программа обходит мою паузу вместо того, чтобы перейти к моему исключению KeyboardInterrupt.

try:
    while True:
        update = input('(?) Do you want to update/install programs? y/n: ')
        update = update.lower()

    print('')
    print('\033[1;32m\n\n(I) Something went wrong, cancelling script\033[1;m')
    os.system('sudo screen -S MITM-Hostapd -X Stuff "^C\n"')

except KeyboardInterrupt:
    print('\033[1;32m\n\n(I) Cancelling script\033[1;m')
    os.system('sudo screen -S MITM-Hostapd -X Stuff "^C\n"')

Это небольшой фрагмент всего моего кода. Но может ли кто-нибудь объяснить, почему мое KeyboardInterrupt не попадает под исключение? Программа запускается в терминале Linux

...