Exit codes in Python Exit codes in Python python python

Exit codes in Python


You're looking for calls to sys.exit() in the script. The argument to that method is returned to the environment as the exit code.

It's fairly likely that the script is never calling the exit method, and that 0 is the default exit code.


From the documentation for sys.exit:

The optional argument arg can be aninteger giving the exit status(defaulting to zero), or another typeof object. If it is an integer, zerois considered “successful termination”and any nonzero value is considered“abnormal termination” by shells andthe like. Most systems require it tobe in the range 0-127, and produceundefined results otherwise. Somesystems have a convention forassigning specific meanings tospecific exit codes, but these aregenerally underdeveloped; Unixprograms generally use 2 for commandline syntax errors and 1 for all otherkind of errors.

One example where exit codes are used are in shell scripts. In Bash you can check the special variable $? for the last exit status:

me@mini:~$ python -c ""; echo $?0me@mini:~$ python -c "import sys; sys.exit(0)"; echo $?0me@mini:~$ python -c "import sys; sys.exit(43)"; echo $?43

Personally I try to use the exit codes I find in /usr/include/asm-generic/errno.h (on a Linux system), but I don't know if this is the right thing to do.


For the record, you can use POSIX standard exit codes defined here.

Example:

import sys, ostry:    config()except:    sys.exit(os.EX_CONFIG) try:    do_stuff()except:    sys.exit(os.EX_SOFTWARE)sys.exit(os.EX_OK) # code 0, all ok