一、什麼是proc目錄
proc目錄是Linux操作系統中的一個虛擬文件系統,其掛載在內存中,用於提供當前正在運行的進程和系統狀態的信息。該目錄下存儲了大量與進程、系統狀態相關的信息,包括運行中的進程、系統內存、IO設備信息等,我們可以通過讀取這些文件來獲取系統性能和狀態的細節。
二、proc目錄的常用文件
在proc目錄下有許多文件,不過我們只需要關注其中一些,這裡列出了一些常用文件:
1. /proc/cpuinfo: 存儲有關處理器的信息,例如處理器類型、頻率等。
2. /proc/meminfo: 存儲有關係統內存使用情況的信息,例如總內存、可用內存等。
3. /proc/loadavg: 在最近的1分鐘、5分鐘和15分鐘內,系統平均負載的信息。
4. /proc/version: 存儲有關操作系統版本的信息,例如內核版本、發行版本等。
5. /proc/stat: 存儲有關CPU和系統啟動時間的信息。
三、獲取進程相關信息
我們可以使用proc目錄獲取正在運行的進程的信息,包括PID、進程狀態、運行時間等。其中,每個進程都有一個與其相對應的文件夾,以其PID命名,文件夾中包含一些文件。
1. /proc/[PID]/stat: 包含有關進程的狀態信息,例如進程的PID、進程狀態、父進程的PID等。
pid = os.getpid()
stat_file = f"/proc/{pid}/stat"
with open(stat_file, "r") as f:
stat_info = f.read()
2. /proc/[PID]/status: 包含有關進程消耗的內存等資源的信息。
pid = os.getpid()
status_file = f"/proc/{pid}/status"
with open(status_file, "r") as f:
status_info = f.read()
3. /proc/[PID]/cmdline: 包含有關進程的命令行參數。
pid = os.getpid()
cmdline_file = f"/proc/{pid}/cmdline"
with open(cmdline_file, "r") as f:
cmdline_info = f.read()
四、獲取系統狀態信息
我們可以使用proc目錄獲取系統狀態的信息,例如系統CPU和內存的使用情況,以及IO設備的使用情況等。
1. /proc/meminfo: 存儲有關係統內存資源的信息,包括總內存、可用內存等。
with open("/proc/meminfo", "r") as f:
mem_info = f.read()
2. /proc/stat: 包含CPU使用率、中斷數量和上下文切換數量等有關係統性能的信息。
with open("/proc/stat", "r") as f:
stat_info = f.read()
3. /proc/net/dev: 包含有關網路介面的統計信息,例如發送和接收的位元組數,以及錯誤等。
with open("/proc/net/dev", "r") as f:
net_info = f.read()
五、結語
Proc目錄是Linux系統中一個非常有用的文件系統,可以使用該目錄來獲取進程、系統狀態和資源消耗方面的信息。從這篇文章中,我們可以了解到在Proc目錄下常用的文件和如何讀取這些文件來獲取系統信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286533.html