Python Glossary English

Python 3.3+Linuxsignalфункция

signal.sigwaitinfo()

маски и ожидание

Как sigwait, но возвращает подробности сигнала (struct_siginfo): номер, PID и UID отправителя. Linux; на macOS функции нет.

Синтаксис

info = signal.sigwaitinfo(sigset)

Документация пишет «Unix», но на macOS этой функции нет — hasattr(signal, 'sigwaitinfo') там ложно. Ценность — поле si_pid: видно, какой процесс прислал SIGTERM. Как и у sigwait, сигналы нужно заранее заблокировать, а ожидание бессрочное; с пределом — sigtimedwait.

Примеры

import os, signal
old = signal.pthread_sigmask(signal.SIG_BLOCK, {signal.SIGUSR1})
os.kill(os.getpid(), signal.SIGUSR1)
info = signal.sigwaitinfo({signal.SIGUSR1})
print(info.si_signo == signal.SIGUSR1, info.si_pid == os.getpid())  # → True True
signal.pthread_sigmask(signal.SIG_SETMASK, old)

См. также

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