A partir de Python 3.5, las constantes de señal se definen como una enumeración, lo que permite un enfoque más agradable:
import signal
catchable_sigs = set(signal.Signals) - {signal.SIGKILL, signal.SIGSTOP}
for sig in catchable_sigs:
signal.signal(sig, print) # Substitute handler of choice for `print`
Simplemente puede recorrer las señales en el módulo de señales y configurarlas.
for i in [x for x in dir(signal) if x.startswith("SIG")]:
try:
signum = getattr(signal,i)
signal.signal(signum,sighandler)
except (OSError, RuntimeError) as m: #OSError for Python3, RuntimeError for 2
print ("Skipping {}".format(i))