does Python actually handle SIGTERM and call sys.exitfunc?
Mail Archiving Daemon
bboard at parc.xerox.com
Tue Apr 18 19:43:08 EDT 2000
I'm looking at the documentation for the signal module in the 1.5.2
Library document, which says:
Python installs a small number of signal handlers by default:
`SIGPIPE' is ignored (so write errors on pipes and sockets can be
reported as ordinary Python exceptions), `SIGINT' is translated
into a `KeyboardInterrupt' exception, and `SIGTERM' is caught so
that necessary cleanup (especially `sys.exitfunc') can be
performed before actually terminating. All of these can be
overridden.
I can find no evidence that SIGTERM is ever caught anywhere in the
interpreter. Can someone point me to the place where this is done?
Also, when I try the following small program:
import sys, time, signal
def writeit (msg):
sys.stdout.write("exiting (" + msg + ")...\n")
sys.stdout.flush()
sys.exitfunc = lambda x="foo": writeit(x)
time.sleep(60)
running it thusly:
/tmp 359 % python test.py &
[2] 11067
/tmp 360 % kill 11067
/tmp 361 %
[2] Terminated python test.py
/tmp 361 %
I see no output saying "exiting (foo)...".
This might be a documentation bug.
Bill
More information about the Python-list
mailing list