Python 3.5+signalпонятие
signal.Signals
перечисления и сведения
Перечисление IntEnum всех сигналов платформы (SIGINT, SIGTERM…): переводит номер в имя и обратно.
Синтаксис
signal.Signals(number).name, signal.Signals['SIGTERM']
Номера сигналов зависят от ОС: SIGUSR1 — 10 на Linux и 30 на macOS, поэтому в логах и протоколах передавайте имя, а не число. С Python 3.11 print(signal.SIGTERM) и f-строка печатают просто 15 — имя даёт только .name или repr. Набор членов тоже разный: SIGBREAK есть лишь на Windows, SIGUSR1 — лишь на Unix, и обращение к отсутствующему — AttributeError.
Примеры
import signal
print(signal.Signals(2).name) # → SIGINT
print(signal.Signals['SIGTERM'] == signal.SIGTERM) # → True
print(f'{signal.SIGTERM}', repr(signal.SIGTERM)) # → 15 <Signals.SIGTERM: 15>
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности