Python脚本挂起异常直到ctrl-c

时间:2014-04-08 17:05:50

标签: python linux python-2.6

我在使用Python 2.6.6运行RH Linux的一台服务器上运行python脚本时遇到问题。当我运行任何脚本并产生异常时,脚本会挂起,直到我按下CTRL-C然后它会打印回溯信息。它发生在我从命令行运行脚本而不直接调用python时,在脚本的第一行使用了shebang。如果我通过调用python来执行脚本,我就不会有同样的问题。我已经搜索过并查看过类似的问题,但它们与特定的库有关,所有这些都发生在所有python脚本中。我尝试过使用相同脚本的不同服务器,并没有遇到问题。我已经包含了一个我一直在测试的简单脚本。它试图打开一个不存在的文件。

#!/usr/bin/env python
tempfile = open('noexists.txt','r')

当我执行代码为" test.py"在命令行上,我得到以下响应:

~/bin$> test.py
^CTraceback (most recent call last):
  File "/export/home/jwd3/bin/test.py", line 2, in <module>
    tempfile = open('noexists.txt','r')
IOError: [Errno 2] No such file or directory: 'noexists.txt'

如果我执行它&#34; python test.py&#34;然后我得到以下回复:

~/bin$> python test.py
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    tempfile = open('noexists.txt','r')
IOError: [Errno 2] No such file or directory: 'noexists.txt'

这里的区别很难说,但执行时非常明显。查看第一个示例输出并注意&#34; ^ C&#34;追溯之前。直到我点击CTRL-C,脚本才挂起。第二个示例输出立即返回异常的回溯而不会挂起。

我已经尝试将脚本移动到新位置,将#!/ usr / bin / python中的shebang更改为#!/ usr / bin / env python和不同的脚本。在所有情况下,它们的行为都相同。任何帮助将不胜感激。我不想使用&#34; python&#34;来调用所有python脚本。格式。

1 个答案:

答案 0 :(得分:0)

感谢上述建议的帮助,我找到了问题的解决方案。运行strace后,我发现代码挂在套接字连接上。在搜索相同的套接字连接信息时,我发现Stack Overflow上已经发布了另一个类似的issue。然后我发现第二个issue也非常相似。两个问题都有相同的建议。显然,Python脚本与名为abrtd的服务冲突。建议是重新启动此服务(abrtd)。重新启动后,解决了Python脚本挂起的问题。