import signal signal.alarm(time)
time
- время в секундах.int
, время в секундах.Функция alarm()
модуля signal
запрашивает отправку сигнала signal.SIGALRM
процессу в течении time
секунд.
Любой ранее запланированный сигнал signal.SIGALRM
отменяется, в любой момент может быть запланирован только один сигнал тревоги. В этом случае возвращаемое значение представляет собой количество секунд до того, как должен был быть доставлен любой ранее установленный сигнал тревоги.
time
равно нулю, то любой запланированный сигнал signal.SIGALRM
отменяется. signal.alarm()
равно нулю, то в настоящий момент не запланировано никаких сигналов signal.SIGALRM
.Доступность: Unix. Для получения дополнительной информации смотрите справочную страницу по сигналу OS alarm(2).
В примере ниже пошлем сигнал signal.SIGALRM
, что бы экстренно выйти из программы. Как указывает стандартная документация модуля os
, это полезно для предотвращения бесконечной блокировки при операциях ввода-вывода или других системных вызовах.
import signal, time def handler_alarm(signum, stack): print('Alarm :', time.ctime()) os.exit(1) # Вызовем receive_alarm() через 5 секунд. signal.signal(signal.SIGALRM, handler_alarm) signal.alarm(5) print('Before:', time.ctime()) time.sleep(360) # Before: Mon Jun 1 09:10:41 2020 # Alarm : Mon Jun 1 09:10:43 2020