Python exit codes
The Python manual states this regarding its exit codes:
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.
So, since you specified thisfiledoesntexist.py
as a command line argument, you get a return code of 2 (assuming the file does not, in fact, exist. In that case I'd recommend renaming it to thisfiledoesexist.py
. ;)
)
Other that such parsing errors, the return code is determined by the Python program run. 0 is returned unless you specify another exit code with sys.exit
. Python itself does not interfere.
As stated, mostly the error codes come from the executed script and sys.exit()
.
The example with a non-existing file as an argument to the interpreter fall in a different category. Though it's stated nowhere I would guess, that these exit codes are the "standard" Linux error codes. There is a module called errno
that provides these error numbers (the exit codes come from linux/include/errno.h
.
I.e.: errno.ENOENT
(stands for for "No such file or directory") has the number 2 which coincides with your example.