Да, это возможно, хотя, возможно, и не из скрипта. Чтобы это работало, вам нужно настроить обработчик сигнала, используяsigaction
с флагом SA_SIGINFO
, и предоставить обработчику сигнатуру, идентичную
void handler(int sig, siginfo_t *info, void *ucontext)
Когда он вызывается для обработки сигнала, указатель siginfo_t
, который он получает в качестве второго аргумента, будет содержать, среди прочего, идентификатор процесса-отправителя(info->si_pid
)и прочитанный идентификатор пользователя процесса-отправителя. процесс отправки(info->si_uid
). Они заполняются для сигналов, отправленных с использованиемkill
или sigqueue
.
Реализация этого на Python потребует значительного объема работы, поскольку сигнальный модуль не обеспечивает доступа к структуре siginfo_t
.