1. 程式人生 > 遊戲 >輕鬆模擬遊戲《水族箱設計師》將於10月21日發售

輕鬆模擬遊戲《水族箱設計師》將於10月21日發售

一、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  1001
1702969 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:該程序的實際指令