我已经在某些Linux发行版(Debian,Linux Mint …)上测试了以下代码,并且可以正常工作,但是在CentOS下,即使我以root身份运行,也会出现错误:

#!/usr/bin/env python

import re

maps_file = open("/proc/18396/maps", 'r')

mem_file = open("/proc/18396/mem", 'r', 0)

for line in maps_file.readlines(): # for each mapped region

m = re.match(r'([0-9A-Fa-f]+)-([0-9A-Fa-f]+) ([-r])', line)

if m.group(3) == 'r': # if this is a readable region

start = int(m.group(1), 16)

end = int(m.group(2), 16)

mem_file.seek(start) # seek to region start

chunk = mem_file.read(end - start) # read region contents

print chunk, # dump contents to standard output

maps_file.close()

mem_file.close()

该脚本读取进程的内存并转储可读区域.在CentOS 5.4 x64下,出现以下错误:

Traceback (most recent call last):

File "./mem.py", line 11, in ?

chunk = mem_file.read(end - start) # read region contents

IOError: [Errno 3] No such process

该过程是活跃且可读的:

[root@localhost ~]# ps xa|grep 18396

18396 ? S 0:00 /usr/sbin/httpd

[root@localhost ~]# ls -al /proc/18396/maps && ls -al /proc/18396/mem

-r--r--r-- 1 root root 0 Jan 31 17:26 /proc/18396/maps

-rw------- 1 root root 0 Jan 31 17:26 /proc/18396/mem

任何想法?我在Python 2.4下尝试过,而Python 2.7在类似Debian的发行版上工作,但在CentOS下却没有.

python读取进程内存_Python读取Linux内存进程错误(/ proc / $pid / mem...相关推荐

  1. linux下查看进程的线程数,linux查看进程的线程数

    top -H -p $PID  #查看对应进程的那个线程占用CPU过高 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行 ...

  2. linux的进程与线程通信方式,Linux的进程/线程间通信方式总结

    Linux系统中的进程间通信方式主要以下几种: 同一主机上的进程通信方式 * UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal) * System V进程 ...

  3. python自定义包或模块在Linux服务器导入错误的解决办法

    python自定义包或模块在Linux服务器导入错误的解决办法 在本地机器上跑python代码,自己定义的文件进行导包运行是没有问题,但是放到linux服务器上的时候就会提示 ImportError: ...

  4. linux 跨进程读取内存,Android之Linux跨进程通信的方式

    As we all know,Android是基于Linux内核开发的,而市面上几乎所有的App都离开跨进程通信.可能你会说Android是通过Binder完成进程之间的通信的.但是Binder是怎么 ...

  5. python多进程共享内存_python 进程间通信 共享内存

    python多进程通信实例分析 python多进程通信实例分析操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那 ...

  6. C/C++内存分配与Linux内存管理进程所涉及到的五个数据段 .

    一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的, ...

  7. python 读取大文件_Python读取大文件

    1. 前言 前几天在做日志分析系统,需要处理几十G的文件,我尝试用原来的for line in open(filepath).readlines()处理,但停顿好久也没变化,可见占用不小的内存.在网上 ...

  8. python读取写入文件_Python读取和写入文件

    1 从文件中读取数据 1.1 读取整个文件 创建名为test的txt文本文件,添加内容如下所示: 1234567890 2345678901 3456789012 实现代码: with open('t ...

  9. python读取grib2数据_python读取grib grib2气象数据

    GRIB是WMO开发的一种用于交换和存储规则分布数据的二进制文件格式,主要用来表示数值天气预报的产品资料.现行的GRIB 码版本有GRIB1 和GRIB2 两种格式.由于小编只接触过GRIB1数据,所 ...

  10. linux 进程 内存 耗光,Linux内存耗尽原因分析

    Linux内存的使用需要维持在一定的比例内,如果内存占用太高,系统也能运行,但是会影响速度.本文就来介绍一下Linux中内存耗尽应该怎么分析? 在测试NAS性能,用fstest长时间写,分析性能变差的 ...

最新文章

  1. shell实例第17讲:连续输入4个100以内的数字,统计和、乘、平均、最小和最大
  2. 差分能量分析介绍(三)
  3. python redis模块_python redis 模块 官方文档(中)
  4. HTML5 编辑 API 之 Range 对象(一)
  5. linux作业(第四章练习题)
  6. T SQL + 正则表达式
  7. 数据库---事务(二)
  8. group by with cube
  9. PHP魔术方法和魔法变量详解
  10. 超高频手持机怎样选择才适合工作呢
  11. Java界面设计GUI
  12. JAVA网站后台管理系统
  13. UFS Power Management 介绍
  14. 电脑风扇狂转,声音巨大是什么原因?
  15. ChinaSoft 论坛巡礼 | 移动软件工程论坛
  16. 一些框架图的色彩搭配
  17. linux下cuda cudnn安装 没有权限的安装
  18. [回溯系列] 组合总和+电话号码(day25)
  19. OSI参考模型(七层模型)
  20. Python 多线程学习

热门文章

  1. 县分计算机维修报废流程图,实验9 氨基甲酸铵分解反应标准平衡常数的测定.doc...
  2. 计算机投诉信英语作文,【回复投诉信英语作文】_英语投诉信回复范文
  3. java开源库生成折线图_Android HelloChart开源库图表之折线图的实例代码
  4. WSGI、Flask及Werkzeug三者之间的关系
  5. sed的基本用法和高级用法
  6. java集合类程序代码_java集合类源码学习二
  7. mysql int 默认值 为ull_mysql的 约束 数据库设计 数据库 存储 触发器 mysql 权限问题...
  8. html代码格式化vscode,vscode 代码格式化
  9. java 原生sql排序 gbk_04-SQLServer的排序规则(字符集编码)
  10. react native与webview通信跳转页面报错:Cannot read property 'setNativeProps' of undefiend