首頁 >web前端 >PS教程 >ps aux詳細解釋

ps aux詳細解釋

高洛峰
高洛峰原創
2017-02-14 10:30:055852瀏覽

ps aux

顯示其他用戶啟動的進程(a)
查看系統中屬於自己的進程(x)
啟動這個進程的用戶和它啟動的時間(u)

 

使用“date -s”指令來修改系統時間
例如將系統時間設定成1996年6月10日的命令如下。
#date -s 06/10/96
將系統時間設定成下午1點12分0秒的命令如下。
#date -s 13:12:00

-------------------------------------- ----------------
USER PID %CPU %MEM VSZ  RSS TTY STAT START TIME COMMAND
root 1    0.0  0.0 1340 440  ?   S   Nov05 0:04  init
root 2    0.0  0.0  0    0   ?   SW  Nov05 0:00 [keventd]
root 3    0.0  0.0  0    0   ?   SW  Nov05 0:00 [keventd]
...
------------------------------------- -----------------

USER域指明了是哪個用戶啟動了這個命令;
用戶可以查看某個進程佔用了多少CPU;
記憶體使用及其VSZ(虛擬記憶體大小)和RSS(常駐集大小):
VSZ表示如果一個程式完全駐留在記憶體的話需要佔用多少記憶體空間;
RSS指明了目前實際佔用了多少記憶體;
STAT顯示了進程目前的狀態:
"S":進程處在睡眠狀態,表明這些進程在等待某些事件發生--可能是用戶輸入或系統資源的可用性;

 

last命令可以有效的查看系統登錄事件

在一個進程調用了exit之後,進程並非馬上就消失掉,而是留下一個稱為殭屍進程(Zombie)的資料結構。在Linux行程的5種狀態中,殭屍行程 是非常特殊的一種,它已經放棄了幾乎所有記憶體空間,沒有任何可執行程式碼,也不能被調度,僅僅在進程列表中保留一個位置,記載該進程的退出狀態等資訊供其他 進程收集,除此之外,殭屍行程不再佔有任何記憶體空間。

系統呼叫exit的作用是使進程退出,但也僅限於將一個正常的進程變成一個殭屍進程,並不能將其完全銷毀。
程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是否當前進程的某個子進程已經退出,如果讓它找到了這樣一個已經變成殭屍的子進程,wait 就會收集這個子進程的信息,並把它徹底銷毀後返回;如果沒有找到這樣一個子進程,wait就會一直阻塞在這裡,直到有一個出現為止。

 

轉載  ps aux 中STAT 解釋 收藏

運行 ps aux 的到以下資訊:
   ps aux
USER    PID   %CPU %MEM VSZ   RSS TTY    STAT   START TIME COMMAND
smmsp 3521   0.0    0.7     6556 1616     ?        Ss      20:40 0:00 sendmail: Queue runner@01:00:00 f
root    3532    0.0       0.2     2428    452     ?        Ss      20:40 0:00 gpm -m /dev/input/mice -t imps2
htt        3563    0.0       0.0    2956    196     ?        Ss       20:41 0:00 /usr/sbin/htt -retryonerror 0
htt        3564    0.0       1.7   29460 3704     ?        Sl        20:41 0:00 htt_server -nodaemon
root      3574    0.0       0.4     5236 992     ?        Ss       20:41 0:00 crond
xfs        3617    0.0       1.3   13572 2804     ?        Ss       20:41 0:00 xfs -droppriv -daemon
root       3627   0.0       0.2     3448    552     ?        SNs     20:41 0:00 anacron -s
root      3636    0.0       0.1     2304    420     ?        Ss       20:41 0:00 /usr/sbin/atd
dbus    3655    0.0       0.5   13840 1084     ?        Ssl       20:41 0:00 dbus-daemon-1 --system
................................... .
stat 中的參數意義如下:
   D 不可中斷Uninterruptible(usually IO)
   R 正在運行,或在佇列中的進程
   S 處於休眠狀態
   T 停止或被追蹤
   Z 殭屍進程
   W 進入記憶體交換(從內核2.6無效)
  X   死掉的進程

        n   低優先權
    s   包含子程序
    +   位於後台的進程組

 

 

======================================

ps命令
要對進程進行監控和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps命令就是最基本同時也是非常強大的進程查看命令.使用該命令可以 確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.總之大部分資訊都是可以透過執行該命令得到的.
ps命令最常用的還是用於監控後台進程的工作情況,因為後台進程是不和屏幕鍵盤這些標準輸入/輸出設備進行通信的,所以如果需要檢測其情況,便可以使用ps命令了.
         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  顯示所有程序,不以終端機來區分。
最常用的方法是ps -aux,然後再利用一個管道符號導向到grep去查找特定的進程,然後再對特定的進程進行操作。

 

linux上進程有5種狀態:
1. 運行(正在運行或在運行隊列中等待)
2. 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到信號)
3 . 不可中斷(收到信號不喚醒和不可運行, 進程必須等待直到有中斷發生)
4. 僵死(進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放)
5 . 停止(進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後停止運行運行)

ps工具標識進程的5種狀態碼:
D 不可中斷uninterruptible sleep (usually IO)
R 運行runnable (on run queue)
S 中斷sleeping
T 停止traced or stopped
Z 僵死a defunct (”zombie”) process

注: 其它狀態還包括W(無駐留頁),

使用ps格式輸出來查看進程狀態:
ps -eo user,stat..,cmd

user 使用者名稱
uid 使用者號碼
pid 進程號
pp 父名程序號
size 記憶體大小, Kbytes位元組.
vsize 總虛擬記憶體大小, bytes位元組(包含code+data+stack)
share 總共享頁數
nice 進程優先權(缺省為0, 最大為-20)
priority(pri ) 核心調度優先權
pmem 程序分享的實體記憶體數的百分比
trs 程式執行程式碼駐留大小
rss 程式所使用的總實體記憶體數, Kbytes位元組
time 程式執行起到現在總的CPU暫用時間
stat 進程狀態
cmd(args) 執行指令的簡單格式

範例:
查看目前系統進程的uid,pid,stat,pri, 以uid號排序.
ps -eo pid,stat,pri,uid –sort uid

查看目前系統進程的user,pid,stat,rss,args, 以rss排序.
ps -eo user,pid,stat,rss,args –sort rss

 

名稱:ps
使用權限:所有使用者
使用方式:ps [options] [--help]
說明:顯示瞬間行程(process) 的動態
參數:
ps 的參數非常多, 在此僅列出幾個常用的參數並大略介紹含義
-A 列出所有的行程
-w 顯示加寬可以顯示較多的資訊
-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的行程

au(x) 輸出格式:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程擁有者
PID: pid
%CPU: 佔用的CPU 使用率
%MEM: 佔用的記憶體使用率
VSZ: 佔用的虛擬記憶體大小的記憶體使用率
VSZ: 佔用的虛擬記憶體大小的記憶體使用率
VSZ: 佔用的虛擬記憶體大小的記憶體使用率
VSZ: 佔用的虛擬記憶體大小的記憶體使用率
VSZ: 佔用的虛擬記憶體大小的記憶體使用率
VSZ: 佔用的虛擬記憶體大小的記憶體使用率
VSZ: 佔用的虛擬記憶體大小
RSS: 佔用的記憶體大小
TTY: 終端的次要裝置號碼(minor device number of tty)
STAT: 該行程的狀態:
D: 不可中斷的靜止
R: 正在執行中
S: 靜止狀態
T: 暫停執行
Z: 不存在但暫時無法消除
W: 沒有足夠的記憶體分頁可分配

<:>N: 低優先序的行程L: 有記憶體分頁分配並鎖在記憶體內🎜START: 行程開始時間🎜TIME: 執行的時間🎜COMMAND:所執行的指令🎜🎜範例:🎜

ps
PID TTY TIME CMD
2791 ttyp0 00:00:00 tcsh
3092 ttyp0 00:00:00 ps
% ps -A
PID TTY TIME CMD
:0010:00:00 :000:00 :00020:00:00:00 :000:00:00 :00 kflushd
3 ? 00:00:00 kpiod
4 ? 00:00:00 kswapd
5 ? 00:00:00 mdrecoveryd
.......
% ps -aux
USER PID %CPUER VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
root 2 0.0 0.0 0 0 ? SW Sep10
root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
........
要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,而ps 指令就是最基本同時也是非常強大的進程檢視指令。使用該指令可以確定有哪些進程正在運作和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等。總之大部分的資訊都是可以透過執行該指令得到。

ps 為我們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;如果想對進程時間監控,應該用 top 工具。

kill 用於殺死進程。

1、ps 的參數說明

ps 提供了很多的選項參數,常用的有以下幾個:

l 長格式輸出;

u 按使用者名稱和啟動時間的順序來顯示進程;
j 用任務格式來顯示進程;
f 用樹形格式來顯示進程;

a 顯示所有用戶的所有進程(包括其它用戶);

x 顯示無控制終端的進程;
r 顯示運行中的進程;
ww 避免詳細參數被截斷;

我們常用的選項是組合是aux 或lax,還有參數f 的應用。

2、ps aux 或lax 輸出的解釋

USER 進程的屬主;
PID 進程的ID;
PPID 父進程;
%CPU 進程佔用的CPU百分比;
%MEM 佔用內存的百分比;
NI 進程的NICE值,數值大,表示較少佔用CPU時間;
VSZ 進程虛擬大小;
RSS 駐留中頁的數量;
TTY 終端ID
STAT 進程狀態(有以下幾種)

D 無法中斷的休眠狀態(通常IO 的進程);

R 正在運行可中在佇列中可過行的;
S 處於休眠狀態;
T 停止或被追蹤;
W 進入記憶體交換(從核心2.6開始無效);
X 死);掉的進程(從來沒見過);
Z 殭屍進程;

N 優先級較低的進程
L 有些頁被鎖進內存;
s 進程的領導者(在它之下有子進程);
l 多重進程的(使用CLONE_THREAD, 類似NPTL pthreads);
+ 位於後台的進程組;
WCHAN 正在等待的進程資源;
START 啟動進程的時間;
TIME 進程消耗CPU的時間; ;
COMMAND 指令的名稱和參數;
3、應用舉例

[root@localhost ~]# ps -aux |more
可以用| 管道和more 連接起來分頁查看。
[root@localhost ~]# ps -aux > ps001.txt
[root@localhost ~]# more ps001.txt
這裡是把所有進程顯示出來,並輸出到ps001.txt文件,然後再透過moremore 來分頁查看。

4、kill 終止進程

有十幾種控制進程的方法,以下是一些常用的方法:
kill -STOP [pid]
發送SIGSTOP (17,19,23)停止一個進程,而不消滅這個進程。
kill -CONT [pid]
發送SIGCONT (19,18,25)重新開始一個停止的程序。
kill -KILL [pid]
發送SIGKILL (9)強迫程序立即停止,且不實施清理操作。
kill -9 -1
終止你擁有的全部流程。
SIGKILL 和 SIGSTOP 訊號不能被捕捉、封鎖或忽略,但是,其它的訊號可以。所以這是你的終極武器。

更多ps  aux詳細解釋相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn