linux上程序有5種狀態:
1. 執行(正在執行或在執行佇列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號)
3. 不可中斷(收到訊號不喚醒和不可執行, 程序必須等待直到有中斷發生)
4. 僵死(程序已終止, 但程序描述符存在, 直到父程序呼叫wait4()系統呼叫後釋放)
5. 停止(程序收到sigstop, sigstp, sigtin, sigtou訊號後停止執行執行)
1)ps a 顯示現行終端機下的所有程式,包括其他使用者的程式。
2)ps -a 顯示所有程式。
3)ps c 列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,引數或常駐服務的標示。
4)ps -e 此引數的效果和指定"a"引數相同。
5)ps e 列出程式時,顯示每個程式所使用的環境變數。
6)ps f 用ascii字元顯示樹狀結構,表達程式間的相互關係。
7)ps -h 顯示樹狀結構,表示程式間的相互關係。
8)ps -n 顯示所有的程式,除了執行ps指令終端機下的程式之外。
9)ps s 採用程式訊號的格式顯示程式狀況。
10)ps s 列出程式時,包括已中斷的子程式資料。
11)ps -t 《終端機編號》 指定終端機編號,並列出屬於該終端機的程式的狀況。
12)ps u 以使用者為主的格式來顯示程式狀況。
13)ps x 顯示所有程式,不以終端機來區分。
14)ps -l 較長,較詳細的顯示該pid的資訊
# ps -la |more
f s uid pid ppid c pri ni addr sz wchan tty time cmd
4 s 0 1 0 0 76 0 - 1193 109952 ? 00:00:03 init
1 s 0 2 1 0 -40 - - 0 migrat ? 00:00:03 migration/0
1 s 0 3 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0
1 s 0 4 1 0 -40 - - 0 migrat ? 00:00:02 migration/1
1 s 0 5 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/1
1 s 0 6 1 0 -40 - - 0 migrat ? 00:00:02 migration/2
1 s 0 7 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/2
相關資訊的意義:
f 程序的標誌(flag),4表示使用者為超級使用者
s 程序的狀態(stat),各stat的意義見下文
pid 程序的id
c cpu使用資源的百分比
pri priority(優先順序)的縮寫,
ni nice值,
addr 核心功能,指出該程序在記憶體的那一部分,如果是執行的程序,一般都是「-」
sz 用掉的記憶體的大小
wchan 當前程序是否正在執行,若為「-」表示正在執行
tty 登陸者的終端位置
time 用掉的cpu的時間
cmd 所執行的指令
# ps aux |more
user pid %cpu %mem vsz rss tty stat start time command
root 1 0.0 0.0 4772 564 ? s sep22 0:03 init [3]
root 2 0.0 0.0 0 0 ? s sep22 0:03 [migration/0]
root 3 0.0 0.0 0 0 ? sn sep22 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? s sep22 0:02 [migration/1]
root 5 0.0 0.0 0 0 ? sn sep22 0:00 [ksoftirqd/1]
root 6 0.0 0.0 0 0 ? ss+ sep22 0:02 [migration/2]
root 7 0.0 0.0 0 0 ? sn sep22 0:00 [ksoftirqd/2]
root 8 0.0 0.0 0 0 ? s sep22 0:00 [migration/3]
root 9 0.0 0.0 0 0 ? sn sep22 0:00 [ksoftirqd/3]
root 10 0.0 0.0 0 0 ? s< sep22 0:00 [migration/4]
上述字段解釋:
user 程序的屬主;
pid 程序的id;
ppid 父程序;
%cpu 程序占用的cpu百分比;
%mem 占用記憶體的百分比;
ni 程序的nice值,數值大,表示較少占用cpu時間;
vsz 該程序使用的虛擬記憶體量(kb);
rss 該程序占用的固定記憶體量(kb)(駐留中頁的數量);
tty 該程序在那個終端上執行(登陸者的終端位置),若與終端無關,則顯示(?)。若為pts/0等,則表示由網路連線主機程序
wchan 當前程序是否正在進行,若為-表示正在進行;
start 該程序被觸發啟動時間;
time 該程序實際使用cpu執行的時間;
command 命令的名稱和引數;
stat狀態位常見的狀態字元
d 無法中斷的休眠狀態(通常 io 的程序);
r 正在執行可中在佇列中可過行的;
s 處於休眠狀態;
t 停止或被追蹤;
w 進入記憶體交換 (從核心2.6開始無效);
x 死掉的程序 (基本很少見);
z 殭屍程序;
< 優先順序高的程序
n 優先順序較低的程序
l 有些頁被鎖進記憶體;
s 程序的領導者(在它之下有子程序);
l 多程序的(使用 clone_thread, 類似 nptl pthreads);
+ 位於後台的程序組;
ps aux指令詳解
linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...
ps aux指令詳解
linux上程序有5種狀態 執行 正在執行或在執行佇列中等待 中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 停止 程序收到sigstop,sigstp...
ps aux指令詳解
linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...