簡體   English   中英

Python腳本掛起異常直到ctrl-c

[英]Python scripts hang on exception until ctrl-c

我在使用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'

如果我執行它作為“python test.py”然后我得到以下響應:

~/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'

這里的差異很難說,但在執行時非常明顯。 查看第一個示例輸出,並在Traceback之前注意“^ C”。 直到我點擊CTRL-C,腳本才掛起。 第二個示例輸出立即返回異常的回溯而不掛起。

我已經嘗試將腳本移動到一個新位置,將#!/ usr / bin / python中的shebang更改為#!/ usr / bin / env python和不同的腳本。 在所有情況下,它們的行為都相同。 任何幫助將不勝感激。 我不想使用“python”格式調用所有python腳本。

感謝上述建議的幫助,我找到了解決問題的方法。 運行strace后,我發現代碼掛在套接字連接上。 搜索同一個套接字連接信息,我發現了另一個問題已經張貼在堆棧溢出,這是類似的。 然后我發現第二個問題也很相似。 兩個問題都有相同的建議。 顯然,Python腳本與名為abrtd的服務沖突。 建議是重新啟動此服務(abrtd)。 重新啟動后,解決了Python腳本掛起的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM