What is difference between sys.exit(0) and os._exit(0)

Solution 1:

According to the documentation:

os._exit():

Exit the process with status n, without calling cleanup handlers, flushing stdio buffers, etc.

Note The standard way to exit is sys.exit(n). _exit() should normally only be used in the child process after a fork().

Solution 2:

os._exit calls the C function _exit() which does an immediate program termination. Note the statement "can never return".

sys.exit() is identical to raise SystemExit(). It raises a Python exception which may be caught by the caller.

Original post: http://bytes.com/topic/python/answers/156121-os-_exit-vs-sys-exit