Exit codes in Python
Exit codes in Python
Youre looking for calls to sys.exit()
in the script. The argument to that method is returned to the environment as the exit code.
Its 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 an
integer giving the exit status
(defaulting to zero), or another type
of object. If it is an integer, zero
is considered “successful termination”
and any nonzero value is considered
“abnormal termination” by shells and
the like. Most systems require it to
be in the range 0-127, and produce
undefined results otherwise. Some
systems have a convention for
assigning specific meanings to
specific exit codes, but these are
generally underdeveloped; Unix
programs generally use 2 for command
line syntax errors and 1 for all other
kind 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:
[email protected]:~$ python -c ; echo $?
0
[email protected]:~$ python -c import sys; sys.exit(0); echo $?
0
[email protected]:~$ 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 dont know if this is the right thing to do.
Exit codes in Python
For the record, you can use POSIX standard exit codes defined here.
Example:
import sys, os
try:
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