ps 命令詳解

ps 概述

Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統(tǒng)中當(dāng)前運(yùn)行的那些進(jìn)程。ps命令列出的是當(dāng)前那些進(jìn)程的快照,就是執(zhí)行ps命令的那個(gè)時(shí)刻的那些進(jìn)程,如果想要?jiǎng)討B(tài)的顯示進(jìn)程信息,就可以使用top命令。

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)行)
ps工具標(biāo)識進(jìn)程的5種狀態(tài)碼:
  • R 運(yùn)行 runnable (on run queue)
  • S 中斷 sleeping
  • D 不可中斷 uninterruptible sleep (usually IO)
  • T 停止 traced or stopped
  • Z 僵死 a defunct (”zombie”) process

ps 使用

用法:ps [ 參數(shù) ]
參數(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 不顯示第一行

示例一:ps -aux

最常用的方法是ps -aux,然后再利用一個(gè)管道符號導(dǎo)向到grep去查找特定的進(jìn)程,然后再對特定的進(jìn)程進(jìn)行操作。

列說明:

  • USER: 用戶名
  • PID: 進(jìn)程ID(Process ID)
  • %CPU: 進(jìn)程的cpu占用率
  • %MEM: 進(jìn)程的內(nèi)存占用率
  • VSZ: 進(jìn)程所使用的虛存的大?。╒irtual Size)
  • RSS: 進(jìn)程使用的駐留集大小或者是實(shí)際內(nèi)存的大小,Kbytes字節(jié)。
  • TTY: 與進(jìn)程關(guān)聯(lián)的終端(tty)
  • STAT: 進(jìn)程的狀態(tài):進(jìn)程狀態(tài)使用字符表示的(STAT的狀態(tài)碼)
  • TIME: 進(jìn)程使用的總cpu時(shí)間
  • COMMAND: 正在執(zhí)行的命令行命令

示例二: ps -ef

  • UID: 用戶ID(User ID)
  • PID: 進(jìn)程ID(Process ID)
  • PPID: 父進(jìn)程的進(jìn)程ID(Parent Process id)
  • STIME: 啟動時(shí)間
  • TTY: 與進(jìn)程關(guān)聯(lián)的終端(tty)
  • TIME: 進(jìn)程使用的總cpu時(shí)間
  • CMD: 正在執(zhí)行的命令行命令

示例三: ps -l

  • F: 代表這個(gè)程序的旗標(biāo) (flag), 4 代表使用者為 super user
  • S: 睡眠 Sleeping 休眠中, 受阻, 在等待某個(gè)條件的形成或接受到信號。
  • UID: 用戶ID(User ID)
  • PID: 進(jìn)程ID(Process ID)
  • PPID: 父進(jìn)程的進(jìn)程ID(Parent Process id)
  • C: CPU 使用的資源百分比
  • PRI: 這個(gè)是 Priority (優(yōu)先執(zhí)行序) 的縮寫,詳細(xì)后面介紹
  • NI: 這個(gè)是 Nice 值,在下一小節(jié)我們會持續(xù)介紹
  • ADDR: 這個(gè)是 kernel function,指出該程序在內(nèi)存的那個(gè)部分。如果是個(gè) running的程序,一般就是 "-"
  • SZ: 使用掉的內(nèi)存大小
  • WCHAN: 目前這個(gè)程序是否正在運(yùn)作當(dāng)中,若為 - 表示正在運(yùn)作
  • TTY: 登入者的終端機(jī)位置
  • TIME: 使用掉的 CPU 時(shí)間。
  • CMD 所下達(dá)的指令為何

其它列詳細(xì)說明

  • SID: 會話ID(Session id)
  • R: 運(yùn)行 Runnable (on run queue) 正在運(yùn)行或在運(yùn)行隊(duì)列中等待。
  • I: 空閑 Idle
  • Z: 僵死 Zombie(a defunct process) 進(jìn)程已終止, 但進(jìn)程描述符存在, 直到父進(jìn)程調(diào)用wait4()系統(tǒng)調(diào)用后釋放。
  • D: 不可中斷 Uninterruptible sleep (ususally IO) 收到信號不喚醒和不可運(yùn)行, 進(jìn)程必須等待直到有中斷發(fā)生。
  • T: 終止 Terminate 進(jìn)程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信號后停止運(yùn)行運(yùn)行。
  • P: 等待交換頁
  • W :無駐留頁 has no resident pages 沒有足夠的記憶體分頁可分配。
  • X: 死掉的進(jìn)程
  • <: 高優(yōu)先級進(jìn)程 高優(yōu)先序的進(jìn)程
  • N: 低優(yōu)先 級進(jìn)程 低優(yōu)先序的進(jìn)程
  • L: 內(nèi)存鎖頁 Lock 有記憶體分頁分配并縮在記憶體內(nèi)
  • s: 進(jìn)程的領(lǐng)導(dǎo)者(在它之下有子進(jìn)程);
  • l: 多進(jìn)程的(使用 CLONE_THREAD, 類似 NPTL pthreads)
  • +: 位于后臺的進(jìn)程組
  • START: 進(jìn)程啟動時(shí)間和日期
  • NI: 優(yōu)先級(Nice)
  • PRI: 進(jìn)程優(yōu)先級編號(Priority)
  • WCHAN: 進(jìn)程正在睡眠的內(nèi)核函數(shù)名稱;該函數(shù)的名稱是從/root/system.map文件中獲得的。
  • FLAGS: 與進(jìn)程相關(guān)的數(shù)字標(biāo)識

示例4

  • 查看進(jìn)程的啟動時(shí)間:
    ps -eo lstart 啟動時(shí)間

  • 查看進(jìn)程的運(yùn)行時(shí)間
    ps -eo etime 運(yùn)行多長時(shí)間.

  • 查看進(jìn)程的pid、啟動時(shí)間、運(yùn)行時(shí)間
    ps -eo pid,lstart,etime | grep [ pid ]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、命令介紹 ps 命令是 Process Status 的縮寫,是一個(gè)命令行實(shí)用程序,用于顯示或查看與Linux...
    青楓教學(xué)閱讀 435評論 0 1
  • ps命令為我們提供了一次性的查看進(jìn)程結(jié)果,它所提供的查看結(jié)果不是動態(tài)連續(xù)的;如果想對進(jìn)程時(shí)間監(jiān)控,應(yīng)該用top工具...
    擇勢量投閱讀 3,575評論 0 1
  • 對于在linux系統(tǒng)開發(fā)的工程師來說,ps命令是經(jīng)常使用的命令,這個(gè)命令可以用來查看進(jìn)程的進(jìn)程id,父進(jìn)程...
    coopbee閱讀 1,772評論 0 1
  • 名稱:ps使用權(quán)限:所有使用者使用方式:ps [options] [--help]說明:顯示瞬間行程 (proce...
    舒小賤閱讀 7,473評論 1 1
  • ps(Process status )查看進(jìn)程狀態(tài)的命令,該命令顯示瞬間進(jìn)程的狀態(tài)簡單用法,直接adb shell...
    IT楓閱讀 23,681評論 0 10

友情鏈接更多精彩內(nèi)容