[Linux] ps命令詳解


Linux中的ps (Process Status)命令用來列出系統中當前運行的那些進程。

 

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

 

1.命令說明
    名稱:ps
    使用權限:所有使用者
    使用方式:ps [options] [--help]
    說明:顯示瞬間行程 (process) 的動態

 

2.常用命令參數

-a 顯示同一終端下的所有程序
-A 顯示所有進程 (等價於-e)
-w 顯示加寬可以顯示較多的資訊

-au 顯示較詳細的資訊
-aux 顯示所有包含其他使用者的進程

c  顯示進程的真實名稱
-C<命令> 列出指定命令的狀況  顯示一個名為getty的進程的信息 ps -C getty

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

-e 等於“-A”
e  顯示環境變量

-f 全部列出,通常和其他選項聯用。如:ps -fa or ps -fx and so on.
f  顯示程序間的關系(樹形結構  pstree命令也是顯示樹形結構)

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

-N 反向選擇

-H 顯示樹狀結構
r  顯示當前終端的進程
T  顯示當前終端的所有程序
u  指定用戶的所有進程

-t<終端機編號>  指定終端機編號,並列出屬於該終端機的程序的狀況。
-p pid 父進程id
-u uid or username 選擇有效的用戶id或者是用戶名
-g gid or groupname 顯示組的所有進程。


-l 長格式(有F,wchan,C 等字段)
-L 參數,后面加上特定的PID 顯示特定進程的線程

--lines<行數> 每頁顯示的行數
--width<字符數> 每頁顯示的字符數
--help 顯示幫助信息
--version 顯示版本顯示
--sort -pcpu 根據pcpu排序

 

3.ps 顯示列的意義

[root@localhost cc]# ps -l

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 17398 17394  0  75   0 - 16543 wait   pts/0    00:00:00 bash
4 R     0 17469 17398  0  77   0 - 15877 -      pts/0    00:00:00 ps


F 代表這個程序的旗標 (flag), 4 代表使用者為 super user
S 代表這個程序的狀態 (STAT),關於各 STAT 的意義將在內文介紹
UID 程序被該 UID 所擁有
PID 就是這個程序的 ID !
PPID 則是其上級父程序的ID
C CPU 使用的資源百分比
PRI 這個是 Priority (優先執行序) 的縮寫,詳細后面介紹
NI 這個是 Nice 值,在下一小節我們會持續介紹
ADDR 這個是 kernel function,指出該程序在內存的那個部分。如果是個 running的程序,一般就是 "-"
SZ 使用掉的內存大小
WCHAN 目前這個程序是否正在運作當中,若為 - 表示正在運作
TTY 登入者的終端機位置
TIME 使用掉的 CPU 時間。
CMD 所下達的指令為何

 

4. 范例

1. 用 | 管道和 more 連接起來分頁查看

    命令:ps -aux |more

2. 把所有進程顯示出來,並輸出到ps.txt文件

    命令:ps -aux > ps.txt

3. 輸出指定的字段

    命令: ps -o pid,ppid,pgrp,tpgid,comm 


4. 結合watch命令 實時顯示系統的進程狀態

    命令: watch -n 1ps -aux --sort -pmem, -pcpu | head 20

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM