Linux作業系統中有關執行程序的相關資訊

2021-08-31 10:10:48 字數 2634 閱讀 7799

/proc 檔案系統可以用於獲取執行中的程序的資訊。在 /proc 中有一些編號的子目錄。每個編號的目錄對應乙個程序 id (pid)。這樣,每乙個執行中的程序 /proc 中都有乙個用它的 pid 命名的目錄。這些子目錄中包含可以提供有關程序的狀態和環境的重要細節資訊的檔案。讓我們試著查詢乙個執行中的程序。

$ ps -aef | grep mozilla

root 32558 32425 8 22:53 pts/1 00:01:23 /usr/bin/mozilla

上述命令顯示有乙個正在執行的 mozilla 程序的 pid 是 32558。相對應的,/proc 中應該有乙個名叫 32558 的目錄

上面這個command通過ps來活得所有程序資訊。然後用管道符輸入到grep這裡。通過grep命令,來獲得含有mozilla的程序資訊。ps命令的詳解如下:

ps 1.作用

ps顯示瞬間程序 (process) 的動態,使用許可權是所有使用者。

2.格式

ps [options] [--help]

3.主要引數

ps的引數非常多, 此齣僅列出幾個常用的引數。

-a:列出所有的程序。

-l:顯示長列表。

-m:顯示記憶體資訊。

-w:顯示加寬可以顯示較多的資訊。

-e:顯示所有程序。

a:顯示終端上的所有程序,包括其它使用者的程序。

-au:顯示較詳細的資訊。

-aux:顯示所有包含其它使用者的程序。

4.說明

要對程序進行監測和控制,首先要了解當前程序的情況,也就是需要檢視當前程序。ps命令就是最基本、也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行、執行的狀態、程序是否結束、程序有沒有殭屍、哪些程序占用了過多的資源等。圖2給出了ps-aux命令詳解。大部分資訊都可以通過執行該命令得到。最常用的三個引數是u、a、x。下面就結合這三個引數詳細說明ps命令的作用:ps aux

stat 表示程序的狀態,其中d為不可中斷的靜止(i/o動作);r正在執行中;s靜止狀態;t暫停執行;z不存在,但暫時無法消除;w沒有足夠的記憶體分頁可分配;高優先序的程序;n低優先序的程序;l有記憶體分頁分配並鎖在記憶體體內 (實時系統或 i/o)。start為程序開始時間。time為執行的時間。command是所執行的指令。

5.應用例項

在進行系統維護時,經常會出現記憶體使用量驚人,而又不知道是哪乙個程序占用了大量程序的情況。除了可以使用top命令檢視記憶體使用情況之外,還可以使用下面的命令:

ps aux | sort +5n

$ ls -l /proc/32558

total 0

-r--r--r-- 1 root root 0 dec 25 22:59 cmdline

-r--r--r-- 1 root root 0 dec 25 22:59 cpu

lrwxrwxrwx 1 root root 0 dec 25 22:59 cwd -> /proc/

-r-------- 1 root root 0 dec 25 22:59 environ

lrwxrwxrwx 1 root root 0 dec 25 22:59 exe -> /usr/bin/mozilla*

dr-x------ 2 root root 0 dec 25 22:59 fd/

-r--r--r-- 1 root root 0 dec 25 22:59 maps

-rw------- 1 root root 0 dec 25 22:59 mem

-r--r--r-- 1 root root 0 dec 25 22:59 mounts

lrwxrwxrwx 1 root root 0 dec 25 22:59 root -> //

-r--r--r-- 1 root root 0 dec 25 22:59 stat

-r--r--r-- 1 root root 0 dec 25 22:59 statm

-r--r--r-- 1 root root 0 dec 25 22:59 status

檔案 "cmdline" 包含啟動程序時呼叫的命令列。"envir" 程序的環境變兩。 "status" 是程序的狀態資訊,包括啟動程序的使用者的使用者id (uid) 和組id(gid) ,父程序id (ppid),還有程序當前的狀態,比如"sleelping"和"running"。每個程序的目錄都有幾個符號鏈結,"cwd"是指向程序當前工作目錄的符號鏈結,"exe"指向執行的程序的可執行程式,"root"指向被這個程序看作是根目錄的目錄 (通常是"/")。目錄"fd"包含指向程序使用的檔案描述符的鏈結。 "cpu"僅在執行 smp 核心時出現,裡面是按 cpu 劃分的程序時間。 /proc/self 是乙個有趣的子目錄,它使得程式可以方便地使用 /proc 查詢本程序地資訊。/proc/self 是乙個鏈結到 /proc 中訪問 /proc 的程序所對應的 pid 的目錄的符號鏈結。

以上就是偶對/proc的內容補充。大家可以看到,這個只是在outline上很小的乙個知識點,就牽涉到了那麼多的內容。偶想,這個大概就是為什麼linux難學的原因吧。

因為學習linux,單位和家裡的兩套機器都安裝了vmware server 1.0.3。但是這個軟體不是很穩定。現在家裡的那台就是死活無法執行fedora 7.連vmware的開機畫面都沒有。只要執行f7,就是黑屏。

linux作業系統執行學習總結

作業系統學習總結 1 linux上面cpu通過上下文切換達到程序的不斷切換,通過動態計算切換執行的時長叫時間片。2 作業系統系統程序分為核心態和使用者態程序 3 作業系統為了具備最高許可權讓使用者程序不具備最高許可權,cpu中提供了psw的暫存器中儲存了程序有關的控制器,其中分兩種執行模式 核心模式...

Linux 的程序操作(執行程序)

如果需要在子程序中執行一些自定義的動作,則需要呼叫 exec 函式族。當程序呼叫 exec 系列函式的時候,該程序執行的程式被立即替換為新的程式,而新程式則從 main 函式開始執行,並立刻替換掉了當前程序的正文段 資料段 堆和堆疊,需要注意的是其程序識別符號和程序描述符是不會改變的。exec 函式...

Linux中有關於目錄的基礎操作

要想知道當前的工作目錄中有些什麼檔案或目錄,在windows的 命令提示符 中要使用 dir 命令,那麼在linux中就要使用 ls 命令,如下所示 這樣螢幕上就立刻顯示當前目錄下的所有檔案及自目錄。注意你可能發現 desktop 顯示的顏色是藍顏色,這裡提示大家一下 這種方法可以最直觀的方法來識別...