ps 命令用來查看 進程信息
ps -- help all
man ps
cheat ps
基礎選項
- A - a a - d x
過濾
- C < command> command name
- p, p, -- pid < PID> process id
- U, -- User < UID> real user id or name
輸出格式
u user- oriented format
線程相關
H as if they were processes
其他雜項
e show the environment after command
c show true command name
ps 輸出的一個進程或者線程爲一行, 每一行包括幾列( 多少列, 具體什麼列根據ps添加的什麼選項決定)
那麼列名稱就很必要了
添加什麼選項出來什麼列名稱也很重要.
用戶相關
USER 該進程的所有者
UID 該進程所有者的userid
進程id相關
PID 該進程的id
PPID 該進程的父進程id
內存相關
% MEM
該進程佔用的物理內存百分比
VSZ
該進程使用掉的虛擬內存量( Kbytes)
RSS
該進程佔用的固定的內存量( Kbytes)
ADDR
程序在內存的哪個部分, 如果爲running狀態, 則爲-
SZ
程序用掉的內存
映射到內存中物理頁面的大小, 包括文本,數據和堆棧空間。這些頁面僅由進程單獨使用. 進程實際佔用的內存數。
控制檯相關
TTY
顯示? 表示與終端機無關, tty1- tty6 表示在物理本機登陸的程序, 若爲 pts/ 0 則爲網絡登陸進主機後的程序
進程狀態相關
STAT或者S
R: 目前正在運行, 或者可以運行
S: 睡眠, 可被信號喚醒
D: 睡眠, 不可被信號喚醒, 一般在等待IO
T: 停止
Z: 殭屍, 等待被系統移除task_struct
Ss+
Ss
S+
R+
S<
s:session leader,會話層狀態。代表的父進程
N:低優先級進程
< :高優先級進程
+ :前臺進程。在前臺進程組中
l:多線程進程
WCHAN
若爲- , 表示程序在運行中
sigsus
STIME或START
process 被啓動的時刻
COMMAND
執行該程序的實際指令, 被 [ ] 包裹的爲內核線程
PRI
運行優先級
NI
運行優先級調整值
CPU 相關
TIME
實際使用的cpu總時間
C或者% CPU
佔用的cpu資源百分比
PSR
當前分配給該進程的處理器,即進程在哪顆CPU上運行。
權限相關
F
權限標識, 0 普通權限, 4 root權限, 1 僅執行fork沒執行exec
線程相關
LWP
輕量級進程(線程)的ID號
NLWP
進程中內核的lwps(線程)數。 NLWP,就是線程組中LWP的個數