2013-02-05 62 views
1

我想從python使用poll()輪詢一個進程。 linkPython民意調查 - 屬性錯誤

我不明白,我爲它提供了一個不可或缺的價值。例如:值14870

14870 
Traceback (most recent call last): 
    File "test.py", line 29, in <module> 
    parse_file(input_csv[0]) 
    File "test.py", line 24, in parse_file 
    ret = pid[r].poll() 
AttributeError: 'int' object has no attribute 'poll' 

我沒能找到什麼數據類型是在文檔中的任何地方..

+1

它就在您提供的鏈接中:'Popen類的實例具有以下方法:' – cha0site

回答

2

你可以執行以下命令:

from os import system 
_proc_status = system('/proc/' + str(pid) + '/status') 
+2

這是一些深度的linux voodoo :)。做得很好。 – mgilson

2

pollPopen對象就像pid的方法是Popen的屬性對象:

process = Popen(['some','command']) 
print(process.pid) 
process.poll() 
+0

我從csv文件獲取pid。所以,對於投票,我只有pid。 – pistal

+0

然後,您需要詢問系統該PID是否存活。 作爲用戶...悲傷,要使用poll()函數,您需要在應用程序中擁有有問題的進程。 – Torxed

+0

'P = subprocess.Popen(CMD,殼=真,標準輸出= subprocess.PIPE,preexec_fn = os.setsid)'' 特效並[a] = p.pid' '具有開放(保存, 'A')作爲f: f.write(str(a)+「,」+ str(p.pid)+'\ n')' – pistal