[发明专利]一种监测linux的进程信息的方法及计算机设备在审
申请号: | 201711269966.5 | 申请日: | 2017-12-05 |
公开(公告)号: | CN107943660A | 公开(公告)日: | 2018-04-20 |
发明(设计)人: | 陈翔宇;施政 | 申请(专利权)人: | 福建星瑞格软件有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙)35212 | 代理人: | 王美花 |
地址: | 350000 福建省福州市鼓楼区*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 监测 linux 进程 信息 方法 计算机 设备 | ||
技术领域
本发明涉及一种监测linux的进程信息的方法及计算机设备。
背景技术
进程是一个具有一定功能的程序执行的一次过程(动态的程序)。每一 个进程都有自己的独立内存空间,在Linux上进程信息是一个很重要的信 息,很多地方都需要获取,比如系统安全监控,系统资源监控等等,一般的 获取方法是用shell命令[ps]列出当前的进程信息或者是读取路径为/proc/进 程id/中的文件的内容,使用shell命令[ps]列出进程信息如下:
[root@localhost~]#ps-ef
其中:
UID--用户名ID;
PID--进程号;
PPID--该进程的父进程号;
C--CPU占用率;
STIME--进程开始时间;
TTY--启动此进程的终端设备;
TIME--此进程的运行总时间;
CMD--完整的命令名*带启动参数;
使用读取/proc/进程id/中的文件的方法,则能够获取到多达100个左右 的进程信息。
但是以上两种方法都是用户程序采用查询的方式对系统提供的进程信 息进行读取,无法在一段时间内频繁的执行,否则会占用太多的CPU时间。 但是如果隔太久运行一次的话,又会遗漏运行时间较短的进程,因为这些进 程已经结束了。如图1所示,图中横坐标表示时间(单位ms),纵坐标表 示进程,进程的运行时间。如果用户程序每隔1ms运行一次查询,读取进 程信息,虽然能够监测到所有的进程,但是会使用户程序占用太多的CPU 时间,效率太低,但是如果每隔10ms运行一次查询,读取进程信息,有可 能进程2,3,4检测不到,因为进程在查询前已经结束了。
由上可知使用用户程序查询系统提供的进程信息,有很大的缺陷。
再者,由本领域的技术人员可知,Linux也提供内核侧主动向用户侧发 起通知的方法,使用netlink,可以实现内核主动向用户发起消息,netlink 是一种采用了socket通信的机制,用于linux内核和上层用户层间进行通信, 它可以双向通信,并可以由内核主动向用户发起通知。
connector连接器是一种netlink,它的netlink协议号是 NETLINK_CONNECTOR。最新内核已经实现了进程事件的连接器,连接器 核心实现代码在内核源码树的driver/connector/connector.c和 drivers/connector/cn_queue.c文件中,文件drivers/connector/cn_proc.c是进 程事件连接器的实现代码。但是这些代码是写在内核中的,除非修改内核代 码并重新编译linux内核,否则是无法修改取得的消息内容,也就是说,用 户只能取得内核提供的固定的一部分进程消息。
据此,本发明摒弃了传统的采用用户程序查询的方式对系统提供的进程 信息进行读取,而对connector连接器进行利用,通过connector连接器在内 核侧主动向用户侧发起通知的基础上,通过安装用户的内核模块(驱动), 在代码中实现截取需要的进程信息,避免收到不需要的信息,并使用hook 方法替换内核的系统程序,无需重写内核代码,也无需重新编译内核。
发明内容
本发明要解决的技术问题,在于提供一种监测linux的进程信息的方法 及计算机设备,通过安装用户的内核模块(驱动),在代码中实现截取需要 的进程信息,避免收到不需要的信息,并使用hook方法替换内核的系统程 序,无需重写内核代码,也无需重新编译内核。
本发明方法是这样实现的:一种监测linux的进程信息的方法,包括:
步骤S1、编写connector消息发送端程序和connector消息接受端程序, 用于将内核中用户程序提供的进程信息作为参数,主动传递给用户层;
步骤S2、编写用户函数,用于在进程时截取用户关注的进程信息;
步骤S3、编写hook程序,用以将所述用户函数替换系统函数;
步骤S4、编写完成后得到用户module,将该用户module安装至内核;
步骤S5、运行hook程序以将所述用户函数替换掉内核的系统函数;
步骤S6、运行用户层的connector消息接收端程序,接受内核的用户 module发送出的进程时的进程信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星瑞格软件有限公司,未经福建星瑞格软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711269966.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:网站后台监控装置
- 下一篇:一种数据储存管理系统
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置