Есть ли способ создать пользовательский сигнал в Linux?
Есть ли способ создать пользовательские сигналы в Linux? Мой сигнал (номер сигнала) не должен совпадать ни с одним из существующих номеров сигналов.
Другими словами, я хочу создать свой собственный уникальный сигнал, который будет зарегистрирован и обработан моим обработчиком.
Является ли это возможным? Если да, то как?
Заранее спасибо.
5 ответов
Вы не можете добавить или зарегистрировать свой собственный SIGWHATEVER.
Увидеть sigset_t
, это фиксированный размер. Увидеть valid_signal()
beartraps.
SIGRTMIN
через SIGRTMAX
(обычно это не константы, а макросы, которые расширяются до функций, вычисляемых во время выполнения), доступны для любого использования, а также SIGUSR1
а также SIGUSR2
, Первые имеют дополнительную поддержку очереди в реальном времени; последнее не Просто выберите один для использования.
Вы можете собрать свое собственное ядро со специальными сигналами:)
Есть USR1
а также USR2
сигналы, предназначенные для определенных пользователем целей.
Вы можете использовать USR1 и USR2 для такого рода вещей.
Если этого недостаточно, вы можете эмулировать поведение, аналогичное сигналу, если ваше приложение прослушивает сокет, в который внешние приложения могут отправлять сообщения.