Python错误代码

时间:2010-09-02 19:14:30

标签: python

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

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

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

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

1 个答案:

答案 0 :(得分:8)

您是否从mysubproc.returncode获得退出状态?

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

  

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

信号6& 11是SIGABRT(abort)和SIGSEGV(segfault)(http://linux.die.net/man/7/signal)。我的猜测是,那些其他脚本遇到了扩展或扩展所依赖的库之一的问题。你可能有一个糟糕的构建 - 如果你手动重新编译或者看看是否有更新的包。