Set the SA_SIGINFO flag in your sigaction call, and your signal handling routine will get two extra parameters. The first is a hashref to a hash intended to contain the various siginfo fields and the second is the raw siginfo struct. Currently, the hash only has signo and code, since which entries of the siginfo struct are set varies greatly on a number of different things, and no one has taken the time to write the code to handle other fields like errno, status, uid, pid, addr, and band. But you can examine what your system provides in siginfo_t and use a suitable unpack on the raw structure to get the pid issuing the signal.