2013-02-05 44 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