Отслеживание происхождения сигналов UNIX? - PullRequest
12 голосов
/ 13 мая 2010

Если у меня есть процесс, который получает сигналы от других процессов, могу ли я как-то сказать, какой процесс (если есть) отправил сигнал?

strace позволяет мне отследить, какие сигналы получил процесс, но не позволяет отследить, кто их выдал.

Ответы [ 2 ]

8 голосов
/ 13 мая 2010

Не извне процесса. Вторым аргументом обработчику сигнала является структура siginfo_t, которая содержит PID процесса отправки в качестве одного из его членов. Подробнее см. sigaction(2).

2 голосов
/ 16 мая 2010

Ptrace также может использоваться для обнаружения отправителя.Существует вызов ptrace(GETSIGINFO), который даст отладчику возможность прочитать (и, возможно, изменить) siginto_t struct.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...