自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡單案例教你用PROC文件系統(tǒng)獲取進(jìn)程信息

原創(chuàng)
系統(tǒng) Linux
PROC文件系統(tǒng)是一個(gè)虛擬的文件系統(tǒng)。本文將通過一個(gè)簡單易懂的例子說明如何使用Linux下的PROC文件系統(tǒng)來獲得進(jìn)程的信息。通過PROC文件系統(tǒng)獲取的信息主要是進(jìn)程使用的虛擬內(nèi)存、以及實(shí)際內(nèi)存、信號機(jī)制方面的信息,和Linux下的其他監(jiān)控工具搭配,能夠?qū)ο到y(tǒng)運(yùn)行的情況有一個(gè)全面的掌握。

【51CTO獨(dú)家特稿】本文將通過一個(gè)簡單易懂的例子說明如何使用Linux下的PROC文件系統(tǒng)來獲得進(jìn)程的信息。通過PROC文件系統(tǒng)獲取的信息主要是進(jìn)程使用的虛擬內(nèi)存、以及實(shí)際內(nèi)存、信號機(jī)制方面的信息,和Linux下的其他監(jiān)控工具搭配,能夠?qū)ο到y(tǒng)運(yùn)行的情況有一個(gè)全面的掌握。首先提供一段PROC文件系統(tǒng)的簡單介紹:

PROC文件系統(tǒng)是一個(gè)虛擬的文件系統(tǒng),通過文件系統(tǒng)的接口實(shí)現(xiàn),用于輸出系統(tǒng)的運(yùn)行狀態(tài)。它以文件系統(tǒng)的形式,為操作系統(tǒng)本身和應(yīng)用進(jìn)程之間的通信提供了一個(gè)界面,使應(yīng)用程序能夠安全、方便地獲得系統(tǒng)當(dāng)前的運(yùn)行狀況和內(nèi)核的內(nèi)部數(shù)據(jù)信息,并可以修改某些系統(tǒng)的配置信息。另外,由于PROC以文件系統(tǒng)的接口實(shí)現(xiàn),因此用戶可以像訪問普通文件一樣對其進(jìn)行訪問,但它只存在于內(nèi)存之中,并不存在于真正的物理磁盤當(dāng)中。所以,當(dāng)系統(tǒng)重啟和電源關(guān)閉的時(shí)候,該系統(tǒng)中的數(shù)據(jù)和信息將全部消失。

表1說明了該文件系統(tǒng)中一些重要的文件和目錄。

表1 重要的PROC文件系統(tǒng)文件和目錄

文件或目錄 說    明
/proc/1 關(guān)于進(jìn)程1的信息目錄。每個(gè)進(jìn)程在/proc下有一個(gè)名為其進(jìn)程號的目錄
/proc/cpuinfo 處理器信息,如類型、制造商、型號和性能
/proc/devices 當(dāng)前運(yùn)行的核心配置的設(shè)備驅(qū)動(dòng)的列表
/proc/dma 顯示當(dāng)前使用的DMA通道
/proc/filesystems 核心配置的文件系統(tǒng)
/proc/interrupts 顯示使用的中斷
/proc/ioports 當(dāng)前使用的I/O端口
/proc/kcore 系統(tǒng)物理內(nèi)存映像
/proc/kmsg 核心輸出的消息,也被送到syslog
/proc/ksyms 核心符號表
/proc/loadavg 系統(tǒng)的平均負(fù)載
/proc/meminfo 存儲(chǔ)器使用信息,包括物理內(nèi)存和swap
/proc/modules 當(dāng)前加載了哪些核心模塊
/proc/net 網(wǎng)絡(luò)協(xié)議狀態(tài)信息
/proc/stat 系統(tǒng)的不同狀態(tài)
/proc/version 核心版本
/proc/uptime 系統(tǒng)啟動(dòng)的時(shí)間長度

值得注意的是:所有上述文件給出易讀的文本文件,有時(shí)可能是不易讀的格式。有許多命令做了些格式化以更容易讀。例如,free程序讀/proc/meminfo并將給出的字節(jié)數(shù)轉(zhuǎn)換為千字節(jié)(并增加了一些信息)。


下面將通過例子來說明如何使用PROC文件系統(tǒng)來獲得進(jìn)程的信息。

首先使用vi編輯器建立一個(gè)c源程序文件,編譯后形成目標(biāo)文件,該文件的主要功能是進(jìn)行計(jì)算,將其保存在/root目錄下,下面將其運(yùn)行:

#cd /root                       //切換目錄
#./calculate                    //運(yùn)行該程序,則生成了以該程序?yàn)槊Q的進(jìn)程

使用ps命令,則能發(fā)現(xiàn)在系統(tǒng)中運(yùn)行了calculate這樣一個(gè)進(jìn)程:

#ps
root      2108 61.2 0.1 1344 224 pts/0    R    21:20   0:11 ./calculate
……

進(jìn)程的基本信息都會(huì)存放在/proc文件系統(tǒng)中,具體位置是在/proc目錄下。通過使用如下命令可以查看系統(tǒng)中運(yùn)行進(jìn)程的相關(guān)信息:

# ls /proc                      //查看/proc目錄下的內(nèi)容
//如下顯示為系統(tǒng)中運(yùn)行進(jìn)程的信息所存放的目錄,每個(gè)進(jìn)程對應(yīng)一個(gè)目錄,加藍(lán)的2108為本例使用的進(jìn)程的詳細(xì)信息所在目錄
1     1790 1922 2049 2083 8            fs          meminfo     swaps
10    1799 1923 2056 2108 9            ide         misc        sys
11    1809 1924 2063 2111 apm          interrupts modules     sysvipc
1491 1818 1925 2065 2138 bus          iomem       mounts      tty
1550 1829 1968 2067 2162 cmdline      ioports     mtrr        uptime
1554 1893 1969 2069 2163 cpuinfo      irq         net         version
1572 19    1978 2071 3     devices      kcore       partitions
1591 1902 2     2073 4     dma          kmsg        pci
1670 1911 2032 2074 5     driver       ksyms       scsi
1720 1919 2043 2079 6     execdomains loadavg     self
1757 1920 2045 2081 7     fb           locks       slabinfo
1771 1921 2047 2082 77    filesystems mdstat      stat
#cd 2108                        //切換到2108目錄,以方便詳細(xì)的查看進(jìn)程信息
#ls                             //列出進(jìn)程詳細(xì)的狀態(tài)信息文件
cmdline cwd environ exe fd maps mem mounts root stat statm status

在這些文件當(dāng)中,status這個(gè)狀態(tài)文件是比較重要的,包含了很多關(guān)于進(jìn)程的有用的信息,用戶可以從這個(gè)文件獲得信息,如下為列出該文件內(nèi)容的操作:

#cat status                     //使用cat命令列出status文件內(nèi)容
Name:   calculate               //進(jìn)程名
State: R (running)             //進(jìn)程運(yùn)行狀態(tài)
Tgid:   2108                    //進(jìn)程組ID
Pid:    2108                     //進(jìn)程ID
PPid:   2083                    //父進(jìn)程ID
TracerPid:      0                //跟蹤調(diào)試進(jìn)程ID
Uid:    0       0       0       0   //進(jìn)程所對應(yīng)程序的UID
Gid:    0       0       0       0   //進(jìn)程所對應(yīng)程序的GID
FDSize: 256                     //進(jìn)程使用文件句柄大小
Groups: 0 1 2 3 4 10 10         //組信息
//進(jìn)程所使用的虛擬內(nèi)存以及實(shí)際內(nèi)存、信號機(jī)制方面的信息
VmSize:     1344 kB
VmLck:         0 kB
VmRSS:       224 kB
VmData:       12 kB
VmStk:        16 kB
VmExe:         4 kB
VmLib:      1292 kB
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 8000000000000000
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 00000000fffffeff
CapEff: 00000000fffffeff

這樣,我們就可以知道進(jìn)程使用的虛擬內(nèi)存、以及實(shí)際內(nèi)存、信號機(jī)制方面的信息了。

【編輯推薦】

  1. 專題:明明白白你的Linux服務(wù)器
  2. 國外十大流行的服務(wù)器監(jiān)控工具(外篇)
  3. 如何監(jiān)控Linux文件系統(tǒng)事件:inotify使用指南
責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2009-12-18 15:54:44

Fedora proc

2021-06-23 07:16:06

buildroot Linux內(nèi)核根文件系統(tǒng)

2010-03-11 17:25:17

Linux系統(tǒng)使用率proc文件系統(tǒng)

2017-03-30 10:13:11

Linux內(nèi)核文件系統(tǒng)

2009-12-18 16:18:15

Fedora proc

2009-12-22 11:30:38

Linux操作系統(tǒng)

2021-12-26 18:32:26

Python Heic 文件

2021-05-18 14:42:55

PythonMySQL

2019-01-24 09:00:00

PythonAutoML機(jī)器學(xué)習(xí)

2015-03-23 12:33:28

2021-02-04 15:52:46

Java考試系統(tǒng)

2021-02-01 08:41:06

Java考試系統(tǒng)

2014-07-22 10:19:19

NeoBundle

2015-04-22 11:29:45

PythonPython創(chuàng)建瀑布圖

2022-05-25 08:21:15

2018-02-25 11:39:36

Python監(jiān)督學(xué)習(xí)算法

2022-05-16 19:44:45

Python

2023-10-27 11:38:09

PythonWord

2019-09-05 10:07:23

ZAODeepfakes換臉

2023-08-03 08:51:07

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號