Linux PS命令詳解

命令:pside

命令格式:ps [options] [--help]函數

命令功能:顯示瞬間行程 (process) 的動態工具

命令參數:ps的參數很是多, 在此僅列出幾個經常使用的參數並大略介紹含義ui

-A    列出全部的進程命令行

-w    顯示加寬能夠顯示較多的資訊線程

-au    顯示較詳細的資訊server

-aux    顯示全部包含其餘使用者的行程排序

############################################################隊列

經常使用參數:進程

-A 顯示全部進程(等價於-e)(utility)

-a 顯示一個終端的全部進程,除了會話引線

-N 忽略選擇。

-d 顯示全部進程,但省略全部的會話引線(utility)

-x 顯示沒有控制終端的進程,同時顯示各個命令的具體路徑。dx不可合用。(utility)

-p pid 進程使用cpu的時間

-u uid or username 選擇有效的用戶id或者是用戶名

-g gid or groupname 顯示組的全部進程。

U username 顯示該用戶下的全部進程,且顯示各個命令的詳細路徑。如:ps U zhang;(utility)

-f 所有列出,一般和其餘選項聯用。如:ps -fa or ps -fx and so on.

-l 長格式(有F,wchan,C 等字段)

-j 做業格式

-o 用戶自定義格式。

v 以虛擬存儲器格式顯示

s 以信號格式顯示

-m 顯示全部的線程

-H 顯示進程的層次(和其它的命令合用,如:ps -Ha)(utility)

e 命令以後顯示環境(如:ps -d e; ps -a e)(utility)

h 不顯示第一行

############################################################

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去查找特定的進程,而後再對特定的進程進行操做。

############################################################

運行 ps aux 的到以下信息:

root:# 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

 

Head標頭:

USER    用戶名

UID    用戶ID(User ID)

PID    進程ID(Process ID)

PPID    父進程的進程ID(Parent Process id)

SID    會話ID(Session id)

%CPU    進程的cpu佔用率

%MEM    進程的內存佔用率

VSZ    進程所使用的虛存的大小(Virtual Size)

RSS    進程使用的駐留集大小或者是實際內存的大小,Kbytes字節。

TTY    與進程關聯的終端(tty)

STAT    進程的狀態:進程狀態使用字符表示的(STAT的狀態碼)

R 運行    Runnable (on run queue)            正在運行或在運行隊列中等待。

S 睡眠    Sleeping                休眠中, 受阻, 在等待某個條件的造成或接受到信號。

I 空閒    Idle

Z 僵死    Zombie(a defunct process)        進程已終止, 但進程描述符存在, 直到父進程調用wait4()系統調用後釋放。

D 不可中斷    Uninterruptible sleep (ususally IO)    收到信號不喚醒和不可運行, 進程必須等待直到有中斷髮生。

T 終止    Terminate                進程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號後中止運行運行。

P 等待交換頁

W 無駐留頁    has no resident pages        沒有足夠的記憶體分頁可分配。

X 死掉的進程

< 高優先級進程                    高優先序的進程

N 低優先    級進程                    低優先序的進程

L 內存鎖頁    Lock                有記憶體分頁分配並縮在記憶體內

s 進程的領導者(在它之下有子進程);

l 多進程的(使用 CLONE_THREAD, 相似 NPTL pthreads)

+ 位於後臺的進程組 

START    進程啓動時間和日期

TIME    進程使用的總cpu時間

COMMAND    正在執行的命令行命令

NI    優先級(Nice)

PRI    進程優先級編號(Priority)

WCHAN    進程正在睡眠的內核函數名稱;該函數的名稱是從/root/system.map文件中得到的。

FLAGS    與進程相關的數字標識

############################################################

例子:

查看當前系統進程的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 爲咱們提供了進程的一次性的查看,它所提供的查看結果並不動態連續的;若是想對進程時間監控,應該用 top 工具。

一、ps 的參數說明:

ps 提供了不少的選項參數,經常使用的有如下幾個:

l 長格式輸出;

u 按用戶名和啓動時間的順序來顯示進程;

j 用任務格式來顯示進程;

f 用樹形格式來顯示進程;

a 顯示全部用戶的全部進程(包括其它用戶);

x 顯示無控制終端的進程;

r 顯示運行中的進程;

ww 避免詳細參數被截斷;

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

 

二、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 命令的名稱和參數;

 

三、應用舉例:

[root@localhost ~]# ps -aux |more

能夠用 | 管道和 more 鏈接起來分頁查看。

[root@localhost ~]# ps -aux > ps001.txt

把結果輸出到ps001.txt文本中並保存。

[root@localhost ~]# more ps001.txt

這裏是把全部進程顯示出來,並輸出到ps001.txt文件,而後再經過more 來分頁查看。

 

四、kill 終止(殺死)進程,有十幾種控制進程的方法,下面是一些經常使用的方法:

[root@localhost ~]#kill -STOP [pid]

發送SIGSTOP (17,19,23)中止一個進程,而並不消滅這個進程。

[root@localhost ~]#kill -CONT [pid]

發送SIGCONT (19,18,25)從新開始一箇中止的進程。

[root@localhost ~]#kill -KILL [pid]

發送SIGKILL (9)強迫進程當即中止,而且不實施清理操做。

[root@localhost ~]#kill -9 -1

終止你擁有的所有進程。

SIGKILL 和 SIGSTOP 信號不能被捕捉、封鎖或者忽略,可是,其它的信號能夠。因此這是你的終極武器。

相關文章
相關標籤/搜索