在哪里可以找到有关Unix上“python”进程退出代码含义的信息?例如,如果我执行“python thisfiledoesntexist.py”,我会得到退出代码2
要点:
from errno import errorcode
print errorcode[2]
答案 0 :(得分:8)
如上所述,错误代码主要来自执行的脚本和sys.exit()
。
作为解释器参数的非现有文件的示例属于不同的类别。虽然它没有说明我猜,这些退出代码是“标准”linux错误代码。有一个名为errno
的模块提供了这些错误编号(退出代码来自linux/include/errno.h
。
即:errno.ENOENT
(代表“没有这样的文件或目录”)的数字2与你的例子一致。
答案 1 :(得分:7)
python手册说明了它的退出代码:
有些系统有一个约定,用于为特定退出代码指定特定含义,但这些通常都是不发达的; Unix程序通常使用2表示命令行语法错误,1表示所有其他类型的错误。
因此,由于您将thisfiledoesntexist.py
指定为命令行参数,因此返回代码为2(假设文件实际上不存在。在这种情况下,我建议将其重命名为{{ 1}}。thisfiledoesexist.py
)
其他如此解析错误,返回码由python程序运行确定。除非您使用;)
指定另一个退出代码,否则将返回0。 Python本身不会干涉。
答案 2 :(得分:3)
答案 3 :(得分:1)
http://www.wingware.com/psupport/python-manual/2.7/library/sys.html
编辑:专注于解释这一点的部分:
http://www.wingware.com/psupport/python-manual/2.7/library/sys.html#sys.exit
答案 4 :(得分:1)
不幸的是,没有100%保证Pythons退出代码将是documentation声称它们将是:os._exit允许python程序员定义应该使用哪个退出代码,表示python file_exists_but_claims_that_it_does_not.py
可以退出os.EX_DATAERR