1荚坞、Linux上進(jìn)程5種狀態(tài):
1. 運(yùn)行(正在運(yùn)行或在運(yùn)行隊(duì)列中等待)
2. 中斷(休眠中, 受阻, 在等待某個(gè)條件的形成或接受到信號)
3. 不可中斷(收到信號不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中斷發(fā)生)
4. 僵死(進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放)
5. 停止(進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運(yùn)行運(yùn)行)
2脉顿、ps命令簡介
ps命令是Process Status的縮寫拙绊。ps命令用來列出系統(tǒng)中當(dāng)前運(yùn)行的那些進(jìn)程愧杯。
要對進(jìn)程進(jìn)行監(jiān)測和控制瑞侮,首先必須要了解當(dāng)前進(jìn)程的情況碟嘴,也就是需要查看當(dāng)前進(jìn)程溪食,而ps 命令就是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令。使用該命令可以確定有哪些進(jìn)程正在運(yùn)行和運(yùn)行的狀態(tài)娜扇、進(jìn)程是否結(jié)束错沃、進(jìn)程有沒有僵死栅组、哪些進(jìn)程占用了過多的資源等等∈辔觯總之大部分信息都是可以通過執(zhí)行該命令得到的玉掸。
注意:ps是顯示瞬間進(jìn)程的狀態(tài),并不動態(tài)連續(xù)醒叁,就是執(zhí)行ps命令的那個(gè)時(shí)刻的那些進(jìn)程司浪;如果想對進(jìn)程進(jìn)行實(shí)時(shí)監(jiān)控應(yīng)該用top命令。
ps工具標(biāo)識進(jìn)程的5種狀態(tài)碼:
D 不可中斷 uninterruptible sleep (usually IO)
R 運(yùn)行 runnable (on run queue)
S 中斷 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
3把沼、ps命令參數(shù)
參數(shù):ps的參數(shù)非常多, 在此僅列出幾個(gè)常用的參數(shù)并大略介紹含義
-A? ? 列出所有的進(jìn)程
-w? ? 顯示加寬可以顯示較多的資訊
-au? ? 顯示較詳細(xì)的資訊
-aux? ? 顯示所有包含其他使用者的行程
常用參數(shù):
-A 顯示所有進(jìn)程(等價(jià)于-e)(utility)
-a 顯示一個(gè)終端的所有進(jìn)程啊易,除了會話引線
-N 忽略選擇。
-d 顯示所有進(jìn)程饮睬,但省略所有的會話引線(utility)
-x 顯示沒有控制終端的進(jìn)程租谈,同時(shí)顯示各個(gè)命令的具體路徑。dx不可合用捆愁。(utility)
-p pid 進(jìn)程使用cpu的時(shí)間
-u uid or username 選擇有效的用戶id或者是用戶名
-g gid or groupname 顯示組的所有進(jìn)程垦垂。
U username 顯示該用戶下的所有進(jìn)程,且顯示各個(gè)命令的詳細(xì)路徑牙瓢。如:ps U zhang;(utility)
-f 全部列出劫拗,通常和其他選項(xiàng)聯(lián)用。如:ps -fa or ps -fx and so on.
-l 長格式(有F,wchan,C 等字段)
-j 作業(yè)格式
-o 用戶自定義格式矾克。
v 以虛擬存儲器格式顯示
s 以信號格式顯示
-m 顯示所有的線程
-H 顯示進(jìn)程的層次(和其它的命令合用页慷,如:ps -Ha)(utility)
e 命令之后顯示環(huán)境(如:ps -d e; ps -a e)(utility)
h 不顯示第一行
4、ps常用用法舉例
1)ps a 顯示現(xiàn)行終端機(jī)下的所有程序胁附,包括其他用戶的程序酒繁。
2)ps -A 顯示所有進(jìn)程。
3)ps c 列出程序時(shí)控妻,顯示每個(gè)程序真正的指令名稱州袒,而不包含路徑,參數(shù)或常駐服務(wù)的標(biāo)示弓候。
4)ps -e 此參數(shù)的效果和指定"A"參數(shù)相同郎哭。
5)ps e 列出程序時(shí),顯示每個(gè)程序所使用的環(huán)境變量菇存。
6)ps f 用ASCII字符顯示樹狀結(jié)構(gòu)夸研,表達(dá)程序間的相互關(guān)系。
7)ps -H 顯示樹狀結(jié)構(gòu)依鸥,表示程序間的相互關(guān)系亥至。
8)ps -N 顯示所有的程序,除了執(zhí)行ps指令終端機(jī)下的程序之外。
9)ps s 采用程序信號的格式顯示程序狀況姐扮。
10)ps S 列出程序時(shí)絮供,包括已中斷的子程序資料。
11)ps -t<終端機(jī)編號> 指定終端機(jī)編號茶敏,并列出屬于該終端機(jī)的程序的狀況杯缺。
12)ps u 以用戶為主的格式來顯示程序狀況。
13)ps x 顯示所有程序睡榆,不以終端機(jī)來區(qū)分萍肆。
最常用的方法是ps -aux,然后再利用一個(gè)管道符號導(dǎo)向到grep去查找特定的進(jìn)程,然后再對特定的進(jìn)程進(jìn)行操作。