linux上程序有5種狀態

2021-08-22 13:09:53 字數 4153 閱讀 4064

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);

+ 位於後台的程序組;

linux上程序狀態查詢

linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...

linux上程序狀態查詢

linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...

linux上程序狀態查詢

original url linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 ...