加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何在linux中读取python中进程的内存?

发布时间:2020-12-13 19:17:08 所属栏目:Linux 来源:网络整理
导读:我正在尝试使用 python和 python ptrace来读取外部进程的内存.我需要完全在python中工作,我一直在尝试读取并打印出linux中进程的内存. 所以例如我尝试了以下代码,它不断给我IO错误: proc_mem = open("/proc/%i/mem" % process.pid,"r")print proc_mem.read(
我正在尝试使用 python和 python ptrace来读取外部进程的内存.我需要完全在python中工作,我一直在尝试读取并打印出linux中进程的内存.

所以例如我尝试了以下代码,它不断给我IO错误:

proc_mem = open("/proc/%i/mem" % process.pid,"r")
print proc_mem.read()
proc_mem.close()

大多数情况下,我只想反复转储进程的内存并查找随时间的变化.如果这是正确的方法,那么我的问题是什么?或者有更合适的方法吗?

解决方法

从python – subprocess模块??调用shell命令
import subprocess

# ps -ux | grep 1842 (Assuming 1842 is the process id. replace with process id you get)

p1 = subprocess.Popen(["ps","-ux"],stdout=subprocess.PIPE)
p2 = subprocess.Popen(["grep","1842"],stdin=p1.stdout,stdout=subprocess.PIPE)
p1.stdout.close()  # Allow p1 to receive a SIGPIPE if p2 exits.
output = p2.communicate()[0]
print output

并解析输出以查看其内存利用率

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读