Python Glossary English

Python 3.8+signalфункция

signal.raise_signal()

отправка сигналов

Посылает сигнал текущему процессу. Удобна для тестов обработчиков; работает и на Windows.

Синтаксис

signal.raise_signal(signum)

В отличие от os.kill(os.getpid(), sig), raise_signal работает и на Windows и шлёт сигнал именно вызывающему потоку, поэтому Python-обработчик выполнится сразу после вызова, до следующей строки. Если обработчика нет, сработает реакция ОС: raise_signal(SIGTERM) завершит процесс без finally. Обработчик, поднявший исключение, выбросит его из строки с raise_signal.

Примеры

import signal
def handler(signum, frame):
    raise RuntimeError(signal.Signals(signum).name)
old = signal.signal(signal.SIGTERM, handler)
try:
    signal.raise_signal(signal.SIGTERM)
except RuntimeError as e:
    print(e)  # → SIGTERM — исключение вылетело из raise_signal
signal.signal(signal.SIGTERM, old)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности