linux系统proc目录进程信息详解
下面是一個PROC文件系統的例子,可以看出proc文件系統里面有很多數字,其它的信息相對容易理解,這里不作介紹,本文主要深入分析proc目錄下的數字信息。
#cd proc #ls
1??? 4?? 9????????? diskstats??? iomem??? meminfo???? self????? uptime
10?? 5?? 97???????? driver?????? ioports? misc??????? slabinfo? version
114? 6?? buddyinfo? execdomains? irq????? mounts????? stat????? vmstat
126? 7?? bus??????? filesystems? kcore??? mtd???????? swaps???? zoneinfo
128? 8?? cmdline??? fs?????????? kmsg???? net???????? sys
2??? 85? cpuinfo??? ide????????? loadavg? partitions? sysvipc
3??? 88? devices??? interrupts?? locks??? pci???????? tty
你看到的上面列出的那些數字目錄代表進程,這些進程在我們對/proc文件系統作快照時正運行在機器上。我們隨便看一個進程目錄的內容:
# ll 126
total 0
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:08 cmdline
lrwxrwxrwx??? 1 root???? root??????????? 0 Jan? 1 00:09 cwd -> /proc
-r--------??? 1 root???? root??????????? 0 Jan? 1 00:09 environ
lrwxrwxrwx??? 1 root???? root??????????? 0 Jan? 1 00:09 exe -> /bin/bash
dr-x------??? 2 root???? root??????????? 0 Jan? 1 00:00 fd
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:09 maps
-rw-------??? 1 root???? root??????????? 0 Jan? 1 00:09 mem
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:00 mounts
-rw-r--r--??? 1 root???? root??????????? 0 Jan? 1 00:09 oom_adj
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:09 oom_score
lrwxrwxrwx??? 1 root???? root??????????? 0 Jan? 1 00:09 root -> /
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:09 smaps
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:08 stat
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:09 statm
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:08 status
dr-xr-xr-x??? 3 root???? root??????????? 0 Jan? 1 00:09 task
看上面輸出的第一行。
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:08 cmdline
"cmdline",這個文件包含整個用來產生進程的命令行。這個文件的內容是命令行參數包括傳遞來啟動進程的所有參數。所有包含在這個文件的信息即命令和各個啟動參數,沒有任何的格式和任何的空格。
lrwxrwxrwx??? 1 root???? root??????????? 0 Jan? 1 00:09 cwd -> /proc
"cwd",像我們從上面看見的,這是一個符號鏈接,它指向進程的當前工作目錄。
-r--------??? 1 root???? root??????????? 0 Jan? 1 00:09 environ
"environ"包括在VARIABL=value為這個進程定義的所有的環境變量。正如"cmdline"一樣,包含在文件中的命令和各個參數的信息沒有任何的格式和空格。
lrwxrwxrwx??? 1 root???? root??????????? 0 Jan? 1 00:09 exe -> /bin/ver
"exe",這是一個符號鏈接指向啟動當前進程的可執行文件。
dr-x------??? 2 root???? root??????????? 0 Jan? 1 00:00 fd
"fd",這個目錄包括被指定進程打開的文件描述符,如果一個進程打開的文件描述符過多,會造成打開文件失敗,通過檢查這個目錄可以查找打開文件失敗的原因。
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:09 maps
"maps", 當你打出這個命名管道的內容,你可以看到進程的地址空間部分,當前被映射到一個文件。這個部分,從左到右是:和這個映射有關的地址空間,和這個映射有關的 權限,距離文件開始(即這個映射開始的地方)的偏移量,這個映射文件所在的設備,文件的inode號,最后是文件名本身。
"root",這是一個符號鏈接指向這個進程的/proc目錄。
-r--r--r--??? 1 root???? root??????????? 0 Jan? 1 00:08 status
"status",這個文件給你有關進程名的信息,它的當前的狀態,睡眠或者清醒,它的PID,UID,PPID和大量其它基本信息。這個信息可以在一個更簡單和結構化的語法中看到,通過使用工具如"ps"和"top"。
總結
以上是生活随笔為你收集整理的linux系统proc目录进程信息详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux新建文件权限问题
- 下一篇: Linux 汇编语言开发指南