Уведомления

Группа в Telegram: @pythonsu

#1 Май 11, 2020 22:59:21

netvis
Зарегистрирован: 2017-11-06
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Как в скрипте отловить прерывание либо закрытие?

Добрый день.
Пишу длинный скрипт с использованием asyncio, есть несколько корутин и все такое. Нужно перед закрытием скрипта скинуть в лог данные, чтобы потом восстановиться.

Другими словами, хотелось бы отловить Ctrl-Break, Ctrl-C или же событие закрытия.
Что пробовал: ставить обработчик signal.SIGTERM/SIGINT/и пр - срабатывает не сразу и через раз, пробовал исключение KeyboardInterrupt ловить - та же ерунда.

Проблема в том, что скрипт еще и может под Windows работать, а там все плохо. Чем вы пользуетесь в таком случае?
Спасибо

Офлайн

#2 Май 12, 2020 13:13:38

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как в скрипте отловить прерывание либо закрытие?

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



Отредактировано FishHook (Май 12, 2020 13:13:50)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version