Python错误代码

use*_*000 4 python

我有一个python脚本,它使用subprocess.Popen来运行另一个python脚本的多个实例,每个脚本都在不同的文件上运行.

我有300个文件的集合,我通过这个过程进行测试.每次运行,随机数量的文件都会失败,总是不同的文件,所以文件本身没有任何问题,但是子进程出现时会出现错误代码-6或-11.如果我使用相同的输入文件再次运行脚本,它将成功运行.

什么是-6和-11?它们可以与python异常相关联吗?

编辑澄清:脚本实际上是django管理命令.我有一个很大的try:except子句捕获任何异常并调用sys.exit(1),所以失败发生在我的代码之外.可能在加载其他模块.我检查了django源代码,它似乎总是在发生任何错误时调用sys.exit(1),所以-6和-11似乎来自较低级别.我认为他们可能是与种族状况有关的奥运,但我不能确定.

Jer*_*own 9

你从mysubproc.returncode获得退出状态吗?

来自http://docs.python.org/library/subprocess.html#subprocess.Popen.returncode:

负值-N表示孩子被信号N终止(仅限Unix).

信号6和11是SIGABRT(中止)和SIGSEGV(segfault)(http://linux.die.net/man/7/signal).我的猜测是那些其他脚本遇到了扩展或扩展所依赖的库之一.您可能会有一个错误的构建 - 如果您手动执行或者查看是否有更新的包,则重新编译.