輕鬆模擬遊戲《水族箱設計師》將於10月21日發售
阿新 • • 發佈:2021-09-20
一、ps命令介紹
Linux系統中會執行各種各樣的程序,如果要對程序進行監控,首先必須瞭解當前程序的情況,也就是需要檢視當前程序。ps命令就是最基本的程序檢視命令,使用該命令可以看到有哪些程序正在執行,並且可以看到程序的執行狀態、程序是否結束、程序有沒有僵死、哪些程序佔用了過多的資源等等。總之大部分資訊都是可以通過執行該命令得到。ps是顯示瞬間程序的狀態,並不動態連續,如果想對程序進行實時監控應該用top命令。ps命令的格式為:
ps [選項]
ps命令常用的選項引數有:
選項 | 功能 |
-A | 顯示所有的程序,跟-e的效果相同 |
-a | 顯示現行終端機下的所有程序,包括其他使用者的程序 |
-u | 顯示當前使用者的程序狀態 |
-x | 通常與 a 這個引數一起使用,可列出較完整資訊 |
-l | 較長、較詳細的將該PID的資訊列出 |
-j | 工作的格式(jobs format) |
-f | 做一個更為完整的輸出 |
由於ps命令支援的系統型別相當的多,所以它的引數多的離譜,而且有沒有加上 - 差很多,所以只需要記住常用的幾個命令即可。
二、ps使用例項
【例1】較長、較詳細的將屬於本次登入使用者的程序列出來
➜ ~ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 10011702969 1702967 0 80 0 - 11484 - pts/1 00:00:01 zsh 0 R 1001 1710433 1702969 0 80 0 - 7460 - pts/1 00:00:00 ps
各個表頭的含義為:
- F:代表這個程序的flag,如果是4,則代表使用者為 super user
- S:代表這個程序的狀態stat
- UID:代表執行者的userId
- PID:程序的id
- PPID:父程序的id
- C:佔用CPU資源的百分比
- PRI:指程序的執行優先順序(Priority的簡寫),其值越小越早被執行
- NI:代表程序的nice值,其表示程序可被執行的優先順序的修正數值
- ADDR:代表程序的地址,它指出該程序在記憶體的哪個部分,如果是個正在執行的程式,一般都是"-"
- SZ:佔用的記憶體大小
- WCHAN:判斷當前程序是否正在執行,若為"-",則代表正在執行
- TTY:該程序是在那個終端機上面執行,若與終端機無關,則顯示?,另外,tty1-tty6 是本機上面的登入者程式,若為 pts/0 等等的,則表示為由網路連線進主機的程式。
- TIME:佔用CPU的時間
- CMD:所下達的指令名稱
【例2】列出當前記憶體中的所有程序
➜ ~ ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 204676 7012 ? Ss Jul07 6:37 /sbin/init nokaslr root 2 0.0 0.0 0 0 ? S Jul07 0:07 [kthreadd] root 4 0.0 0.0 0 0 ? I< Jul07 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? I< Jul07 0:00 [mm_percpu_wq] root 7 0.0 0.0 0 0 ? S Jul07 7:03 [ksoftirqd/0] root 8 0.0 0.0 0 0 ? I Jul07 54:18 [rcu_sched] root 9 0.0 0.0 0 0 ? I Jul07 0:00 [rcu_bh] ...... ......
各個表頭的含義為:
- USER:表示該程序屬於哪個使用者
- PID:程序id
- %CPU:該程序佔用CPU資源的百分比
- %MEM:該程序佔用記憶體的百分比
- VSZ:該程序使用掉的虛擬記憶體量 (Kbytes)
- RSS:該程序佔用的固定的記憶體量 (Kbytes)
- TTY:該程序是在那個終端機上面執行,若與終端機無關,則顯示?,另外,tty1-tty6 是本機上面的登入者程式,若為 pts/0 等等的,則表示為由網路連線進主機的程式。
- STAT:代表該程序目前的狀態,主要的狀態有:
- R:該程序正在執行
- S:該程序正在休眠,但可被某些訊號(signal)喚醒
- T:該程序已經停止
- Z:僵死狀態,該程序應該已經終止,但是其父程序卻無法正常的終止它,造成zombie(疆屍)程式的狀態
- START:該程序被觸發啟動的時間
- COMMAND:該程序的實際指令