- Зарегистрируйте сигнал в main (). Например:
def signal_handler(signal, frame):
print('\n')
sys.exit(0)
def main():
signal.signal(signal.SIGINT, signal_handler)
do_stuff_before_python_terminates()
- Сигналы не срабатывают до тех пор, пока не закончится низкоуровневый код C; из документации: «Долгосрочный расчет, реализованный исключительно на C (например, согласование регулярных выражений на большом тексте), может выполняться без прерывания в течение произвольного промежутка времени, независимо от полученных сигналов. Обработчики сигналов Python будут вызваны когда вычисление завершается. "
задан MortenM 19 January 2019 в 04:31
поделиться