程式管理-ps、top、pstree、kill、killall 1、程式的觀察-ps常用:一個是只能查閱自己 bash 程式的‘ ps -l ’,一個則是可以查閱所有系統運作的程式‘ ps auxf ’。 www.2cto.com [root@www ~]# ps -lF S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD4 S 0 13639 13637 0 75 0 - 1287 wait pts/1 00:00:00 bash4 R 0 13700 13639 0 77 0 - 1101 - pts/1 00:00:00 ps 主要含義說明:F:代表這個程式旗標 (process flags),說明這個程式的總結許可權,常見號碼有:若為 4 表示此程式的許可權為 root ; 若為 1 則表示此子程式僅進行複製(fork)而沒有實際執行(exec)。 www.2cto.com S:代表這個程式的狀態 (STAT),主要的狀態有:R (Running):該程式正在運作中; S (Sleep):開程式目前正在睡眠狀態(idle),但可以被喚醒(signal)。 D :不可被喚醒的睡眠狀態,通常這支程式可能在等待 I/O 的情況(ex>列印) T :停止狀態(stop),可能是在工作控制(背景暫停)或除錯 (traced) 狀態; Z (Zombie):殭屍狀態,程式已經終止但卻無法被移除至記憶體外。 C:代表 CPU 使用率,單位為百分比; PRI/NI:Priority/Nice 的縮寫,代表此程式被 CPU 所執行的優先順序,數值越小代表該程式越快被 CPU 執行。 ADDR/SZ/WCHAN:都與記憶體有關,ADDR 是 kernel function,指出該程式在記憶體的哪個部分,如果是個 running 的程式,一般就會顯示‘ - ’ / SZ 代表此程式用掉多少記憶體 / WCHAN 表示目前程式是否運作中,同樣的, 若為 - 表示正在運作中。 TIME:使用掉的 CPU 時間,注意,是此程式實際花費 CPU 運作的時間,而不是系統時間; ps aux的列有些不太一樣,VSZ :該 process 使用掉的虛擬記憶體量 (Kbytes) ,RSS :該 process 佔用的固定的記憶體量 (Kbytes) 2、動態觀察程式的變化-top[root@www ~]# top [-d 數字] | top [-bnp]選項與參數:-d :後面可以接秒數,就是整個程式畫面更新的秒數。預設是 5 秒;-b :以批次的方式執行 top ,還有更多的參數可以使用喔! 通常會搭配資料流重導向來將批次的結果輸出成為檔案。-n :與 -b 搭配,意義是,需要進行幾次 top 的輸出結果。-p :指定某些個 PID 來進行觀察監測而已。在 top 執行過程當中可以使用的按鍵指令: ? :顯示在 top 當中可以輸入的按鍵指令;常用-P :以 CPU 的使用資源排序顯示; M :以 Memory 的使用資源排序顯示; N :以 PID 來排序喔! T :由該 Process 使用的 CPU 時間累積 (TIME+) 排序。 k :給予某個 PID 一個訊號 (signal) r :給予某個 PID 重新制訂一個 nice 值。 q :離開 top 軟體的按鍵。 3、顯示程式樹-pstree[root@www ~]# pstree [-A|U] [-up]選項與參數:-A :各程式樹之間的串連以 ASCII 字元來串連;-U :各程式樹之間的串連以萬國碼的字元來串連。在某些終端介面下可能會有錯誤;常用:-p :並同時列出每個 process 的 PID;常用:-u :並同時列出每個 process 的所屬帳號名稱。 4、kill -signal PID或%工作號signal主要有1-重啟,9-強制關,15-正常關 5、killall -signal 指令名稱[root@www ~]# killall [-iIe] [command name]選項與參數:-i :interactive 的意思,互動式的,若需要刪除時,會出現提示字元給使用者;-e :exact 的意思,表示‘後面接的 command name 要一致’,但整個完整的指令 不能超過 15 個字元。-I :指令名稱(可能含參數)忽略大小寫。