In python 2.6 under Linux, I can use the following to handle a TERM signal:
import signal
def handleSigTERM():
shutdown()
signal.signal(signal.SIGTERM, h
Works on Windows 10 and Python 3.7:
import signal
import time
def sighandler(signal,frame):
print("signal",sig,frame)
return
catchable_sigs = set(signal.Signals)
for sig in catchable_sigs:
try:
signal.signal(sig, sighandler)
print("Setting ",sig)
print ("value {}".format(sig))
except (ValueError, OSError, RuntimeError) as m:
print("Skipping ",sig)
print ("Value {}".format(sig))
# press some keys or issue kill
x = 0
while x < 5:
time.sleep(4)
x += 1
Results:
Skipping Signals.CTRL_C_EVENT
Value 0
Skipping Signals.CTRL_BREAK_EVENT
Value 1
Setting Signals.SIGINT
value 2
Setting Signals.SIGILL
value 4
Setting Signals.SIGFPE
value 8
Setting Signals.SIGSEGV
value 11
Setting Signals.SIGTERM
value 15
Setting Signals.SIGBREAK
value 21
Setting Signals.SIGABRT
value 22