Подтвердить что ты не робот

Отслеживание истоков сигнала UNIX?

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

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

4b9b3361

Ответ 1

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

Ответ 2

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