What does Python do under the covers by default if it receives a SIGTERM but there is no signal handler registered for it?
Building on the answer of Thomas Wouters, python does not register a handler for the SIGTERM signal. We can see this by doing:
In[23]: signal.SIG_DFL == signal.signal(signal.SIGTERM,signal.SIG_DFL)
Out[23]: True
That means that the system will take the default action. On linux, the default action (according to the signal man page) for a SIGTERM is to terminate the process.
Terminating a process means that:
the process will simply not be allocated any more time slices during which it can execute code.
__exit__
method of context managers. It will not do those things because that particular python interpreter will never get the chance to execute another instruction. The process's memory and other resources (open files, network sockets, etc...) will be released back to the rest of the system.