在linux系統中,ps(process status的縮寫)命令常常用來用來列出系統中當前執行的程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程序,而 ps 命令就是最基本同時也是非常強大的程序檢視命令。使用該命令可以確定有哪些程序正在執行和執行的狀態、程序是否結束、程序有沒有僵死、哪些程序占用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到的。
linux上程序有5種狀態:
程序狀態
含義對應ps命令的狀態碼
執行正在執行或在執行佇列中等待
r 執行 runnable (on run queue)
中斷休眠中, 受阻, 在等待某個條件的形成或接受到訊號
s 中斷 sleeping
不可中斷
收到訊號不喚醒和不可執行, 程序必須等待直到有中斷發生
d 不可中斷 uninterruptible sleep (usually io)
僵死程序已終止, 但程序描述符存在, 直到父程序呼叫wait4()系統呼叫後釋放
z 僵死 a defunct (」zombie」) process
停止程序收到sigstop, sigstp, sigtin, sigtou訊號後停止執行執行
t 停止 traced or stopped
ps命令有很多引數,具體如下:
命令含義
e顯示所有程序,環境變數
f全格式
h不顯示標題
l長格式
w寬輸出
a顯示終端上地所有程序,包括其他使用者地程序
r只顯示正在執行地程序
x顯示沒有控制終端地程序
u以使用者為主的格式來顯示程式狀況
au顯示較詳細的資訊
aux顯示所有包含其他使用者的行程
-c《命令》
列出指定命令的狀況
--lines《行數》
每頁顯示的行數
--width《字元數》
每頁顯示的字元數
--help
顯示幫助資訊
--version
顯示版本顯示
ps -ef 與 ps aux
linux下顯示系統程序的命令ps,最常用的有ps -ef 和ps aux。這兩個到底有什麼區別呢?兩者沒太大差別,討論這個問題,要追溯到unix系統中的兩種風格,system v風格和bsd 風格,ps aux最初用到unix style中,而ps -ef被用在system v style中,兩者輸出略有不同。現在的大部分linux系統都是可以同時使用這兩種方式的。
ps -ef 是用標準的格式顯示程序的、其格式如下:
使用者id
程序的id
父程序id
程序占用cpu的百分比
程序啟動的時間
該程序在那個終端上執行。
若與終端無關,則顯示?
若為pts/0等,則表示由網路連線主機程序。
命令的名稱和引數
ps aux 是用bsd的格式來顯示、其格式如下
使用者名稱同上
程序占用的cpu百分比
占用記憶體的百分比
該程序使用的虛擬記憶體量(kb)
該程序占用的固定記憶體量(kb)
(駐留中頁的數量)
同上程序的狀態
同上該程序實際使用cpu執行的時間
同上其中stat狀態位常見的狀態字元有
d //無法中斷的休眠狀態(通常 io 的程序);
r //正在執行可中在佇列中可過行的;
s //處於休眠狀態;
t //停止或被追蹤;
w //進入記憶體交換 (從核心2.6開始無效);
x //死掉的程序 (基本很少見);
z //殭屍程序;
n //優先順序較低的程序
l //有些頁被鎖進記憶體;
s //程序的領導者(在它之下有子程序);
l //多執行緒,轉殖執行緒(使用 clone_thread, 類似 nptl pthreads);
+ //位於後台的程序組;
linux ps命令詳細解說
1.ps簡介 ps命令就是最根本相應情況下也是相當強大地程序檢視命令.運用該命令可以確定有哪些程序正在執行和執行地狀態 程序是否結束 程序有沒有僵死 哪些程序占用了過多地資源等等.總之大部分資訊均為可以通過執行該命令得到地.2.ps命令及其引數 ps命令最經常使用地還是用於監控後台程序地工作情況,因...
Linux ps命令詳細使用
用來列出系統中當前執行的那些程序 ps 為我們提供了程序的一次性的檢視,它所提供的檢視結果並不動態連續的 如果想對程序時間監控,應該用 top 工具。kill 命令用於殺死程序 linux上的程序有5種狀態 執行 正在執行或者在執行佇列中等待 中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 不...
Linux ps命令引數應用說明
linux中的ps命令是process status的縮寫。ps命令用來列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。要對程序進行監測和控制,首先必須要了解當前程序的情況,也就是需要檢視當前程...