As others have said, there's peril to be had there for sure, so tread carefully. Minimize the scope of your handler is the best advice, certainly also refer to "Async-signal-safe functions" in signal(7) if you must use libc funcs.
One challenge in a distributed system when there's (ab)use of signals is finding out which process issued a signal. There might be a better facility to do it now but I've used systemtap [1] to find out who the sender was with satisfactory results.
One challenge in a distributed system when there's (ab)use of signals is finding out which process issued a signal. There might be a better facility to do it now but I've used systemtap [1] to find out who the sender was with satisfactory results.
[1] https://sourceware.org/systemtap/examples/process/sig_by_pid...