linux 命令之 ps 查看進程


ps

ps (全稱:process status)用於顯示當前進程的狀態,與windows 的任務管理器類似。ps 命令列出的是當前那些進程的快照,就是執行 ps 命令的那個時刻的那些進程,如果想要動態的顯示進程信息,就可以使用top命令。要對進程進行監測和控制,就必須要了解當前進程的情況,也就是需要查看當前進程。而 ps 命令就是最基本,同時也是非常強大的進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等。總之大部分信息都是可以通過執行該命令查看。

進程有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命令支持三種語法格式

  1. Unix風格的參數,前面加單破折線
  2. BSD風格的參數,前面不加破折線
  3. GNU風格的長參數,前面加雙破折線

語法

ps [options]
  • -a 顯示同一終端下的所有程序

  • -A 顯示所有進程

  • -u 顯示用戶

  • -x 顯示無控制終端的進程

  • -e 顯示所有用戶的進程此參數的效果和指定a參數相同

  • -f 用ASCII字符顯示樹狀結構,表達程序間的相互關系

案例

顯示指定用戶信息

ps -u root

顯示所有進程信息,連同命令行

ps -ef

說明:

  • UID:啟動這些進程的用戶
  • PID:進程的進程ID
  • PPID:父進程的進程號(如果該進程是由另一個進程啟動的)
  • C:進程生命周期中的CPU利用率
  • STIME:進程啟動時的系統時間
  • TTY:進程啟動時的終端設備
  • TIME:運行進程需要的累計CPU時間
  • CMD:啟動的程序名稱

ps 與 grep 常用組合用法,查找指定進程

ps -ef | grep java

列出目前所有的正在內存當中的程序

ps -aux

說明

  • USER: 啟動進程的用戶
  • PID: 進程的ID
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的記憶體使用率
  • VSZ: 占用的虛擬記憶體大小
  • RSS: 占用的記憶體大小
  • TTY: 進程啟動時的終端設備
  • STAT: 行程的狀態
    • D: 無法中斷的休眠狀態 (通常 IO 的進程)
    • R: 正在執行中
    • S: 靜止狀態
    • T: 暫停執行
    • Z: 不存在但暫時無法消除
    • W: 沒有足夠的記憶體分頁可分配
    • <: 高優先序的進程
    • N: 低優先序的進程
    • L: 有記憶體分頁分配並鎖在記憶體內 (實時系統或捱A I/O)
  • START: 進程開始時間
  • TIME: 運行進程需要的累計CPU時間
  • COMMAND: 所執行的命令


免責聲明!

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



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