Прервать все запущенные сигналы в Python?

1

Как я могу прерывать все бегущие сигналы в Python script? Мне бы хотелось что-то вроде signal.interrupt_all().

Есть ли способ сделать это?

Спасибо

Теги:
signals

1 ответ

1
Лучший ответ

Что именно вы имеете в виду? Вы хотите временно игнорировать сигнал или полностью игнорировать некоторые виды сигналов?

Вообще говоря, вы не можете "пропустить" сигнал после его создания. Вы либо устанавливаете его действие на "игнорировать", либо блокируете сигнал, не позволяя ему быть доставленным, но вам нужно сделать это заранее.

В системах POSIX ваши параметры (см. Основные понятия сигналов):

  • Игнорировать сигнал, установив его обработчик на SIG_IGN. Это также приведет к игнорированию ожидающих сигналов (см. Концепции сигналов: SIG_IGN).
  • Блокировать сигнал от доставки. Сигнал останется в ожидании, но ваш процесс/поток не получит его (пока он не будет разблокирован). К сожалению, вы не можете блокировать сигналы в Python: см. Документацию модуля .

Обратите внимание, что вы не можете прерывать обработчик сигнала (функция захвата сигнала); это не должно быть проблемой, так как ожидается, что обработчики сигналов будут быстро возвращаться.

Смотрите также этот вопрос: Перехват сигналов в Python.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню