[發明專利]一種監測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.szxzyx.cn/pat/books/201711269966.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:網站后臺監控裝置
- 下一篇:一種數據儲存管理系統
- 信息記錄介質、信息記錄方法、信息記錄設備、信息再現方法和信息再現設備
- 信息記錄裝置、信息記錄方法、信息記錄介質、信息復制裝置和信息復制方法
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄設備、信息重放設備、信息記錄方法、信息重放方法、以及信息記錄介質
- 信息存儲介質、信息記錄方法、信息重放方法、信息記錄設備、以及信息重放設備
- 信息存儲介質、信息記錄方法、信息回放方法、信息記錄設備和信息回放設備
- 信息記錄介質、信息記錄方法、信息記錄裝置、信息再現方法和信息再現裝置
- 信息終端,信息終端的信息呈現方法和信息呈現程序
- 信息創建、信息發送方法及信息創建、信息發送裝置





