2016-08-18 51 views
2

我已經開始使用一個子進程:Python的 - 殺掛起進程開始使用subprocess.Popen

proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) 
output = proc.communicate()[0] 

有時命令cmd掛,所以我的Python腳本也掛在這一點上。

我想讓它運行一段時間(10秒?),如果我沒有得到響應,那麼簡單地殺死進程並繼續使用我的腳本。

我該怎麼做?

回答

2

如果你使用python 3,Popen.communicate有超時kwarg:

proc = subprocess.Popen(cmd, stdout=subprocess.PIPE) 
output = proc.communicate(timeout=10)[0] 
+0

多方便。我應該更仔細地閱讀文檔。 – jlconlin

0

subprocess documentationproc.terminate()是你什麼是正在尋找

+0

是的,我能做到這一點,但什麼都可以「 t do等待10秒,然後選擇放棄。我怎麼做? – jlconlin