目前 能夠 經過 不少種方式 查看 系統進程,top之類的 工具 能夠 動態 的獲取 進程信息,今天 介紹 靜態 獲取 進程信息的 工具 -- ps(固然,靜態 獲取 進程信息 這類工具 確定 不止 ps,還有 pstree...)
bash
### ### 進程狀態 能夠 是單個狀態,也能夠是 多個 狀態的組合,例如 Ss、S< ### ## R -- Running.運行中 ## S -- Interruptible Sleep.等待調用 ## D -- Uninterruptible Sleep.不可中斷睡眠 ## T -- Stoped.暫停或者跟蹤狀態 ## X -- Dead.即將被撤銷 ## Z -- Zombie.殭屍進程 ## W -- Paging.內存交換 ## N -- 優先級低的進程 ## < -- 優先級高的進程 ## s -- 進程的領導者 ## L -- 鎖定狀態 ## l -- 多線程狀態 ## + -- 前臺進程
## -l -- 長格式輸出(與 -j 參數 不能同時使用) ## -a -- -a 表明 all ## -x -- x參數會顯示沒有控制終端的進程 ## -u -- 查看特定用戶進程 ## -j -- 用任務格式來顯示進程(與 -l 參數 不能同時使用) ## -f -- 用樹形格式來顯示進程 ## -o -- -o 參數控制輸出 ## -C -- 顯示指定進程
ps -l 顯示本身此次登錄的 bash 相關的進程信息羅列出來
session
# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1003 195824 195823 0 80 0 - 5616 wait pts/1 00:00:00 bash 0 R 1003 232370 195824 0 80 0 - 2205 - pts/1 00:00:00 ps
## F -- 進程的標誌(process flags),當 flags 值爲 1 則表示此子程序只是 fork 但沒有執行 exec,爲 4 表示此程序使用超級管理員 root 權限 ## S -- 進程的狀態 ## UID -- 進程的擁有用戶 ## PID -- 進程的 ID ## PPID -- 其父進程的 PID ## C -- CPU使用率,單位爲百分比 ## PRI -- 優先級(對應 top PR;PR、NI參見 "Linux 操做命令 ps -- 進程查看" 一文) ## NI -- 進程的 NICE 值(優先級) ## ADDR -- ADDR是kernel function,指出該程序在內存的哪一個部分,若是是個running的程序,通常就會顯示 "-" ## SZ -- SZ表明程序用掉多少內存 ## WCHAN -- WCHAN表示目前程序是否運行中,一樣的,若爲-表示正在運行中 ## TTY -- 終端 ID ## TIME -- 進程消耗CPU的時間(運行時長) ## CMD -- 命令的名稱和參數
羅列出全部的進程信息
多線程
# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 33784 4268 ? Ss Mar06 0:03 /sbin/init root 2 0.0 0.0 0 0 ? S Mar06 0:00 [kthreadd] ... ... root 3 0.0 0.0 0 0 ? S Mar06 2:28 [ksoftirqd/0]
## USER -- 進程用戶用戶名 ## PID -- 進程的 ID ## %CPU -- 進程佔用的 CPU 百分比 ## %MEM -- 佔用內存的百分比 ## VSZ -- 進程使用虛擬內存大小 ## RSS -- 駐留內存中頁的大小 ## TTY -- 終端 ID ## STAT -- 進程的狀態 ## START -- 啓動進程的時間 ## TIME -- 實際使用CPU運行的時間 ## COMMAND -- 命令的名稱和參數
ps -axjf 連同部分的進程呈樹狀顯示出來
ide
# ps -axjf PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 2 0 0 ? -1 S 0 0:00 [kthreadd] 2 3 0 0 ? -1 S 0 2:28 \_ [ksoftirqd/0] ... ... 2 237046 0 0 ? -1 S 0 0:00 \_ [kworker/u480:1] 0 1 1 1 ? -1 Ss 0 0:03 /sbin/init ... ... 1 902 902 902 ? -1 Ss 0 0:04 smbd -F 902 1160 902 902 ? -1 S 0 0:00 \_ smbd -F 902 1271 902 902 ? -1 S 0 0:08 \_ smbd -F
## PPID -- 其父進程的 PID ## PID -- 其父進程的 PID ## PGID -- 進程組 PID ## SID -- session 的 ID ## TTY -- 終端 ID ## TPGID -- 前臺進程組的 ID;TPGID欄寫着-1的都是沒有控制終端的進程,也就是守護進程 ## STAT -- 啓動進程的時間 ## UID -- 進程的擁有用戶 ## TIME -- 實際使用CPU運行的時間 ## COMMAND -- 命令的名稱和參數
指定 顯示的 信息
工具
## 只顯示 進程的 用戶信息 ## ps -axf -o user # ps -afxo user
指定 顯示的 進程
線程
## 只顯示 指定的進程 # ps -C smbd PID TTY TIME CMD 902 ? 00:00:04 smbd 1160 ? 00:00:00 smbd 1271 ? 00:00:08 smbd # ps -C smbd -jf UID PID PPID PGID SID C STIME TTY TIME CMD root 902 1 902 902 0 Mar06 ? 00:00:04 smbd -F root 1160 902 902 902 0 Mar06 ? 00:00:00 smbd -F root 1271 902 902 902 0 Mar06 ? 00:00:08 smbd -F # ps -C smbd -lf F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD 4 S root 902 1 0 80 0 - 79182 - Mar06 ? 00:00:04 smbd -F 1 S root 1160 902 0 80 0 - 77195 - Mar06 ? 00:00:00 smbd -F 5 S root 1271 902 0 80 0 - 79182 - Mar06 ? 00:00:08 smbd -F