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Сообщить о неточности