Ответ 1
Не вне процесса. Второй аргумент обработчику сигналов - это структура siginfo_t
, которая содержит PID процесса отправки как один из его членов. Подробнее см. sigaction(2)
.
Если у меня есть процесс, который получает сигналы от других процессов, есть ли способ для меня каким-то образом сказать, какой процесс (если есть) отправил сигнал?
strace
позволяет мне отслеживать, какие сигналы получают процесс, но не позволяет мне отслеживать, кто их выдал.
Не вне процесса. Второй аргумент обработчику сигналов - это структура siginfo_t
, которая содержит PID процесса отправки как один из его членов. Подробнее см. sigaction(2)
.
Ptrace
может использоваться для обнаружения отправителя. Существует вызов ptrace(GETSIGINFO)
, который даст отладчику возможность прочитать (и, возможно, изменить) siginto_t
struct.