1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python Ubuntu 获取进程信息

Python Ubuntu 获取进程信息

时间:2021-09-24 16:42:39

相关推荐

Python  Ubuntu 获取进程信息

备忘,其实是想知道该进程使用的内存状况。

首先要获取系统的内存信息:

defmemory_stat():

'''

returnthememoryinfo

'''

mem={}

stat={}

f=open('/proc/meminfo')

lines=f.readlines()

forlineinlines:

iflen(line)<2:continue

name=line.split(':')[0]

var=line.split(':')[1].split()[0]

mem[name]=long(var)*1024.0

stat['MemUsed']=mem['MemTotal']-mem['MemFree']-mem['Buffers']-mem['Cached']

stat['MemTotal']=mem['MemTotal']

stat['MemFree']=mem['MemFree']

stat['Buffers']=mem['Buffers']

stat['Cached']=mem['Cached']

returnstat

因为我下面使用的方法来获取的进程信息,只能知道该进程占内存的百分比。所以必须先获取内存的总量。

接下来定义一个获取进程信息的函数。

defproc_stat(procid):

importcommands

ps_stat=None

try:

#获取进程的内存信息

ps_stat=commands.getoutput('ps-fp%s-u'%procid).split('\n')[2].split()

except:

return{}

procInfo={}

procInfo['PID']=procid

#这里调用了刚才定义的memory_stat获取内存总量,

#然后乘以该进程所占内存的百分比,即为内存使用量

procInfo['MemoryUsed']=memory_stat()['MemTotal']*float(ps_stat[3])/100

procInfo['Start']=ps_stat[8]

procInfo['StartCommand']=ps_stat[10]

returnprocInfo

接着使用 ipython ,测试 ,先开一个 python 进程 ,假设进程ID为2168,则:

fromMachineInfoimportproc_stat

ps=proc_stat(2168)

ps

{'MemoryUsed':3650289.6639999999,#这里是以byte为单位,也可以自己进行转换

'PID':2168,

'Start':'21:56',

'StartCommand':'python'}

记录完毕。Over~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。