我在Python中運行一種棘手的.exe文件來接收一些數據測量結果。文件應該打開,進行測量,然後關閉。這個問題有時會崩潰,我需要能夠在很長一段時間內每10分鐘進行一次這些測量。在Python腳本中殺死沒有響應的exe文件
我需要的是一個'檢查',看看.exe是否沒有響應,如果不是,然後讓它殺死進程。或者在每次測量之後殺死整個腳本。問題在於腳本在嘗試運行沒有響應的.exe文件時卡住了。
這裏的腳本:
FNULL = open(os.devnull, 'a')
filename = "current_pressure.log"
command = '"*SRH#\r"'
args = "httpget -r -o " + filename + " -C 2 -S " + command + IP
subprocess.call(args, stdout=FNULL, stderr=FNULL, shell=False)
基本上,需要的東西,如:
"if httpget.exe not responding, then kill process"
OR
"kill above script if running after longer than 20 seconds"
另一種更好的方式我會讀'httpget'文檔以找出是否有'deadline','timeout'選項。您可以在Python 3上使用'timeout'參數和'subprocess.call()'。 – jfs 2015-04-03 19:33:22