查看目前系統中的程序:
(1) 僅查看與當前使用者有關的程序,並列出其詳細資訊:
使用 ps -l,顯示一個表格(程序表),其畫面類似這樣:
每一行代表一個程序。各欄位說明如下:
F |
該程序的「旗標」。可能的值有: 1:該程序是個子程序。且只進行fork而沒有進行exec。 4:表示該程序具有root的權限。 還有兩個可能值,與上述兩者有關: 0:既不是1也不是4。 5:既是1也是4。 |
S |
該程序目前的狀態。常見值為: R:表示該程序正在進行中。 S:表示該程序目前為「睡眠(sleep)狀態」而暫停執行,正在等待某種「訊號」,才能將之「喚醒」。大部分的程序都屬於此一狀態。 D:表示該程序目前為「睡眠(sleep)狀態」而暫停執行,不過不能被喚醒。 T:表示該程序接收到一個「SIGSTOP訊號」而暫停執行,或者是該程序正受到系統檢查中而暫停執行。 Z:表示該程序目前為「殭屍(zombie)狀態」。這種程序已經無法執行,但又不能用一般的方法去結束它,在記憶體內佔空間、耗資源。通常出現這種程序時,表示系統發生錯誤。 |
UID |
該程序之UID。 |
PID |
該程序之PID。 |
PPID |
該程序之父程序之PID。若PPID與PID相同,表示該程序沒有父程序。 |
C |
該程序所佔的CPU使用率,單位是百分比(%)。 |
PRI |
CPU在同時間要處理的程序非常多,這些程序中,有的是需要CPU立即處裡的「急件」,有些則可以慢一點處裡。為此,每個程序都被定義了「優先度(priority)」,也就是PRI。一個程序的PRI越低,表示這個程序越應該優先處理。也就是說,一個程序的PRI越低,CPU就會投入越多資源去處理此程序。 |
NI |
預設情形下,每個程序的PRI都是系統去定義的,而非使用者去定義的,此時的PRI值稱為「預設PRI值」。不過使用者可以透過對某個程序的「NICE值(也就是NI)」來做設定,手動更改此程序的PRI值,使PRI值=NI值+預設PRI值。 其做法為有兩種: 1. 在程序產生時,就指定此程序的NI值: nice -n N 指令 可以使由此指令產生的程序,其NICE值為N。 N值有範圍限制,若使用者是root,N的值可以設定為-20~19。若使用者只是一般使用者,則N的值只能設定為0~19。 2. 更改一現有程序的NI值: renice N PID 可將具有此PID之程序,其NI值改成N。 若使用者只是一般使用者,則N的值不能大於19,也不能小於該程序當前的NI值。 ※ 若使用者沒有設定NI值,程序的NI值一般都是0。 |
ADDR |
與記憶體有關。不在此探討。 |
SZ |
與該程序所占用的記憶體大小有關。不在此探討。 |
WCHAN |
與記憶體有關。不在此探討。 |
TTY |
當前使用者的終端機位置。若以tty開頭表示使用者是使用本機連線主機,若以pts開頭表示使用者是在遠端連線主機。 |
TIME |
表示CPU目前這個程序上花了多少時間。格式是「時:分:秒」。 |
CMD |
產生該程序的指令。 |
(2) 查看系統中所有的程序:
(2-1) 使用ps -Al,其顯示出的程序表中各欄位與ps -l所顯示的一樣,但所查看的不限於當前使用者本身。
(2-2) 使用pidof 程序名,可以查看該程序的PID。如:pidof bash,可以查出bash的PID。
(2-3) 使用ps aux,顯示一個表格(程序表),其畫面類似這樣(以下是顯示畫面的節錄):
每一行代表一個程序。各欄位說明如下:
USER |
該程序之UID所對應到的帳號名。也就是該程序的執行者。 |
PID |
該程序之PID。 |
%CPU |
該程序所佔的CPU使用率,單位是百分比(%)。 |
%MEM |
該程序所佔的實體記憶體容量,單位是百分比(%)。 ※註:實體記憶體,就是主機板中的記憶卡所記憶體。 |
VSZ |
該程序所佔的虛擬記憶體容量,單位是KB。 ※註:虛擬記憶體,是將一部分硬碟容量拿來模擬成記憶體使用。 |
RSS |
該程序所佔的實體記憶體容量,單位是KB。 |
TTY |
當前使用者的終端機位置。若以tty開頭表示使用者是使用本機連線主機,若以pts開頭表示使用者是在遠端連線主機。 |
STAT |
第一個字代表該程序的狀態,與ps -l所顯示出的S欄位相同。第二個字是進階的狀態,在此不探討。 |
START |
表示該程序在何時執行。 |
TIME |
表示CPU目前這個程序上花了多少時間。格式是「分:秒」。 |
COMMAND |
產生該程序的指令。若指令之後出現<defunct>字樣,表示該程序是個殭屍程序。 |