Gracefull application exit.
Tim Golden
mail at timgolden.me.uk
Thu Jul 24 12:19:08 EDT 2008
Robert Rawlins wrote:
> I’m looking to implement an exit/termination process for an application
> which can be triggered by A) a keyboard interrupt or B) termination of
> the application as a Daemon using a signal.
>
> I have a whole bunch of tasks I want to perform as a cleanup before the
> application is terminated, cleaning files, database calls, closing open
> connections and a few other things.
>
> I know we have:
>
> # I'm the main application started method.
>
> if __name__ == /"__main__"/:
>
> For starting an application, but do we have an equivalent methods for
> when an application is terminated which we can use to close down any
> current internal processes before the application exits?
>
> I’d really love to have your thoughts and experience on gracefully
> killing an application.
You want to look at the atexit module:
http://docs.python.org/lib/module-atexit.html
but mind the caveats:
"""
Note: the functions registered via this module are not
called when the program is killed by a signal, when a
Python fatal internal error is detected, or when
os._exit() is called.
"""
TJG
More information about the Python-list
mailing list