Сообщить об ошибке.

Функция alarm() модуля signal в Python

Отправить сигнал процессу

Синтаксис:

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