我知道終止子進程調用的問題已經被問了幾次,包括here,但是,試圖遵循這些答案,我似乎無法讓我的腳本掛起(在我的情況下,我正在執行一個幻影腳本)。例如,如果我嘗試在我的幻影代碼中加載不存在的jquery文件,該腳本將掛起,即使我有超時。這裏是我的代碼:如何用超時終止這個子進程?
def kill_proc():
if p.poll() != 0:
process.kill()
p = subprocess.Popen(['phantomjs','file.js'],stdout=subprocess.PIPE)
out, phantomError = p.communicate()
t = Timer(5, kill_proc) # should kill it after 5 seconds
t.start()
p.wait()
我phantomjs腳本(工作正在進行中):
var page = require('webpage').create();
page.includeJs("http://localhost/jquery.js",function(){
phantom.exit();
});
如果你可以更新到Python 3.3,[subprocess](http://docs.python.org/3/library/subprocess.html)模塊的函數獲得了一個可以自動執行此操作的'timeout'參數。 – bbayles