命令執行或者函式使用超時解決辦法

2021-09-29 17:44:38 字數 910 閱讀 9363

當我們在寫執行乙個命令或者乙個函式的時候,處理的時間太長或者卡死在某個位置時,我們想要中斷,就需要進行一定的處理。廢話不多說,上**,自己看。

def set_command_exec_timeout(cmd_string):

'''設定命令執行超時

:param cmd_string: 執行的命令

:return:

'''class timeoutexception(exception):pass

@contextmanager

def time_limit(seconds):

def signal_handler(signum, frame):

raise timeoutexception, "timed out!"

signal.signal(signal.sigalrm, signal_handler)

signal.alarm(seconds)

try:

yield

finally:

signal.alarm(0)

def function():

p = subprocess.popen(cmd_string, shell=true, stdout=subprocess.pipe, stderr=subprocess.stdout)

cmd_out_info = p.stdout.readlines()

p.terminate()

return cmd_out_info

try:

with time_limit(1):

return function()

except timeoutexception as e:

print "time out!"

return

關於ipmitool命令無法使用的解決辦法

故障現象 執行ipmitool指令,提示如下錯誤,重啟 重灌ipmitool及openipmi,問題依舊。參照以下方法後,問題依舊 1 針對該問題,軟體配置方面看似已經ok,不妨考慮bmc硬體問題,可嘗試更新bmc firmware 正常不會導致機器重啟 如firmware更新失敗,則表示存在bmc...

使用VS2013執行 exe出錯系列解決辦法

問題一 在vs中執行編譯程式正常,但執行生成的.exe出現 無法開啟某某檔案 的問題 無法開啟這些資料夾,就是在.exe目錄下沒有改資料夾,所以找不到。解決辦法 將這些檔案全部放在 exe目錄下。拓展 當然還會出現 無法載入某某模型 無法找到某某 諸如此類的問題,我們只需將報錯打不開的這些檔案統統放...

關於cmd中執行命令路徑包含空格的解決辦法

女朋友最近在學習python,今天在弄easygui的安裝,本來非常簡單的乙個問題,在cmd中進入easygui的目錄,然後呼叫python安裝目錄下的python.exe執行easygui下的setup.py即可。整個命令就是 c program files x86 python python.p...