Exit codes in Python
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Peaceful Mind
--
Chapters
00:00 Exit Codes In Python
00:21 Answer 1 Score 18
00:39 Accepted Answer Score 334
00:59 Answer 3 Score 144
02:02 Answer 4 Score 23
02:15 Thank you
--
Full question
https://stackoverflow.com/questions/2852...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #exitcode
#avk47
ACCEPTED ANSWER
Score 334
You're looking for calls to sys.exit() (exit() calls 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.
ANSWER 2
Score 144
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:
me@mini:~$ python -c ""; echo $?
0
me@mini:~$ python -c "import sys; sys.exit(0)"; echo $?
0
me@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.
ANSWER 3
Score 23
There is an errno module that defines standard exit codes:
For example, Permission denied is error code 13:
import errno, sys
if can_access_resource():
    do_something()
else:
    sys.exit(errno.EACCES)
ANSWER 4
Score 18
Exit codes of 0 usually mean, "nothing wrong here." However if the programmer of the script didn't follow convention you may have to consult the source to see what it means. Usually a non-zero value is returned as an error code.