python从linux中的/proc中提取进程统计信息(代码片段)

author author     2022-12-27     658

关键词:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: cody kochmann
# @Date:   2017-03-21 11:16:34
# @Last Modified time: 2017-03-21 11:30:16

'''extracts the process statistics from /proc in linux'''

__all__ = 'proc_info', 'vm_info'

from os import getpid
from os.path import isfile

# yields the lines of a file
readlines=lambda i:(l.replace('\n','') for l in open(i).readlines()) if isfile(i) else ''

# yields the lines of the current process proc file
proc_lines=lambda:readlines('/proc//status'.format(getpid()))

# converts tabs to spaces
rm_tabs=lambda s:s.replace('\t','  ')

# removes useless spaces in a string
strip = lambda s:(s.strip() if not '  ' in rm_tabs(s) else strip(rm_tabs(s).replace('  ',' ')))

# takes a "key:value" string and returns it as a dict  "key": "value" 
make_kv=lambda l:l[0]:l[1] if len(l)==2 else make_kv(tuple(strip(i) for i in l.split(':')))

# dict key generator
keys=lambda d:(i for i in d.keys())

# dict val generator
vals=lambda d:(i for i in d.values())

# joins an iterable collection of dictionaries and merges them into one
join_kv=lambda it:next(keys(d)):next(vals(d)) for d in it

# returns a dict with all of the process proc values extracted
proc_info=lambda:join_kv(make_kv(l) for l in proc_lines())

# returns the process 'Vm' info from the proc file
vm_info=lambda p=proc_info(): k:p[k] for k in p if k.startswith('Vm')

if __name__ == '__main__':
  # load the proc info
  p = proc_info()
  p = vm_info()

  # stop if the proc info is empty
  if not len(p):
    exit('couldnt find the /proc file')

  # variables for formatting
  longest_key = max(len(k) for k in p)
  longest_val = max(len(str(p[k]).split(' ')[0]) for k in p)
  col_margin = 2

  # print the output
  for k in p:
    print('0:lk1:lv2'.format(
      k, p[k].split(' ')[0], p[k].split(' ')[1],
      lk=longest_key+col_margin,
      lv=longest_val+col_margin,
    ))

如何使用 php 中的 pid 杀死 linux 进程?

】如何使用php中的pid杀死linux进程?【英文标题】:Howtokillalinuxprocessusingpidfromphp?【发布时间】:2013-10-1421:53:12【问题描述】:我面临一个关于从我的php代码中终止Linux进程的问题。我在后台使用proc_open()函数从我的php代码运行Scra... 查看详情

与 Linux 内核中的进程核心转储创建相关的文件

】与Linux内核中的进程核心转储创建相关的文件【英文标题】:filesrelatedtoprocesscoredumpcreationinlinuxkernel【发布时间】:2011-09-2709:00:27【问题描述】:只需要在linux内核中寻找进程核心转储创建。谁能指出我要查看x86的哪些文件。具... 查看详情

为啥线程中的 python asyncio 进程在 Linux 上似乎不稳定?

】为啥线程中的pythonasyncio进程在Linux上似乎不稳定?【英文标题】:WhypythonasyncioprocessinathreadseemsunstableonLinux?为什么线程中的pythonasyncio进程在Linux上似乎不稳定?【发布时间】:2018-12-1917:47:44【问题描述】:我尝试从Qt应用程序... 查看详情

java示例代码_从/proc/swaps获取Linux中的交换大小

java示例代码_从/proc/swaps获取Linux中的交换大小 查看详情

linux如何获取进程在物理内存中的所有内容?当进程在内存中的内容发生变化时,又如何获知?内核中实现

参考技术A/proc/meminfo不能反映每个进程的内存使用这些东西只在/proc/xxxx/下的statmmapsmemmap里有体现你只需要查看这些虚拟文件在linux内核的实现即可例如cat/proc/1/statm,出来的7组数据里,第二组就是进程1的物理内存使用量,单位是... 查看详情

从python中的xgboost中提取决策规则

】从python中的xgboost中提取决策规则【英文标题】:extractingdecisionrulesfromxgboostinpython【发布时间】:2019-06-2522:53:43【问题描述】:我想在我即将推出的模型中使用python中的xgboost。但是由于我们的生产系统是在SAS中,我试图从xgboost... 查看详情

从python中的视频中提取音频

】从python中的视频中提取音频【英文标题】:Extractaudiofromvideoinpython【发布时间】:2019-04-2815:56:47【问题描述】:我正在尝试从视频文件中提取音频文件并将其保存到wav文件中,然后在python3中再次将音频和视频组合在一起。我找... 查看详情

从 Python 中的嵌套 Json 中提取信息

】从Python中的嵌套Json中提取信息【英文标题】:ExtractinformationfromnestedJsoninPython【发布时间】:2021-11-0505:39:34【问题描述】:我有一个dataset包含嵌套的json对象。我希望从这个嵌套的json中提取信息并将其放入python中的DataFrame中。... 查看详情

如何从 Python 中的文本中提取 2d 年?

】如何从Python中的文本中提取2d年?【英文标题】:Howtoextract2dyearfromtextinPython?【发布时间】:2021-12-2112:09:47【问题描述】:我试图从PandasDataFrame中的一列中的短文本中提取出生年份和死亡年份:firstnamelastname(1937-2015)我用这个代... 查看详情

从文件性能方面提取数据(子进程与文件读取)Python

】从文件性能方面提取数据(子进程与文件读取)Python【英文标题】:Extractingdatafromfileperformancewise(subprocessvsfileread)Python【发布时间】:2016-08-2102:55:09【问题描述】:想知道使用python从本地托管文件中读取数据的最有效方法是什... 查看详情

从python中的jpeg2000图像中提取元数据

】从python中的jpeg2000图像中提取元数据【英文标题】:extractingmetadatafromjpeg2000imagesinpython【发布时间】:2015-05-1512:42:48【问题描述】:我想更新一系列jpeg2000图像中的元数据。我想用python来做。我查看了glymur并能够提取xmletree:impo... 查看详情

从python中的tar存档中提取压缩的gz文件

】从python中的tar存档中提取压缩的gz文件【英文标题】:Extractingcompressedgzfilefromtararchiveinpython【发布时间】:2019-09-2703:38:28【问题描述】:我正在尝试使用Python3.6.5从tar存档中提取压缩文件。我正在尝试从包含压缩gz文件的tar存档... 查看详情

如何从 excel 列中提取数据到 Python 中的列表?

】如何从excel列中提取数据到Python中的列表?【英文标题】:HowtoextractdatafromanexcelcolumntoalistinPython?【发布时间】:2019-01-2008:42:24【问题描述】:我正在尝试从excel中的列中提取数据到Python中的列表中。我有以下代码:#ExtractingLabel... 查看详情

从Python中的json文件中的特定字段中提取文本

】从Python中的json文件中的特定字段中提取文本【英文标题】:ExtractingtextfromaspecificfieldinajsonfileinPython【发布时间】:2022-01-0522:47:04【问题描述】:我的JSON看起来像这样(但有很多这样的行):"text":"Home-HomepagedesKunstvereinsProArsLaus... 查看详情

从python中的文件中提取所有证书[关闭]

】从python中的文件中提取所有证书[关闭]【英文标题】:Extractallthecertificatesfromafileinpython[closed]【发布时间】:2020-08-2208:49:25【问题描述】:我是python新手。我有一个带有可信CA证书的文件。文件可以有任意数量的这种格式的证书... 查看详情

[study]top是如何实现的?(代码片段)

Linux中的top命令是如何实现的?初探top是procs的一部分,常用来查看系统的负载情况.procs中除了top外,还包括ps,free,w,uptime,watch,sysctl等常用的命令.了解top命令除了直接在terminal使用之外,就是top的官方文档和源代码了.不过在此之前,我们... 查看详情

从python中的URL中提取域[重复]

】从python中的URL中提取域[重复]【英文标题】:ExtractdomainfromURLinpython[duplicate]【发布时间】:2017-10-2203:20:16【问题描述】:我有一个类似的网址:http://abc.hostname.com/somethings/anything/我想得到:hostname.com我可以使用什么模块来完成... 查看详情

从python中的列表中提取数据

】从python中的列表中提取数据【英文标题】:Extractdatafromalistinpython【发布时间】:2021-06-2204:08:32【问题描述】:我有以下清单:[N12.000000mean2.011608median2.021611std0.572034relativestd0.284350dtype:float64,N12.000000mean2.011608median2.021611std0.571815r 查看详情