我正在尝试使用
python和
python ptrace来读取外部进程的内存.我需要完全在python中工作,我一直在尝试读取并打印出linux中进程的内存.
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
并解析输出以查看其内存利用率