Linux_程序管理(一)
一、程序查詢
1、基本介紹
1)在Linux中,每個執行的程式(程式碼)都稱為一個程序。每個程序都分配一個ID號。
2)每一個程序都會對應一個父程序,而這個父程序可以複製多個子程序。例如www伺服器
3)每個程序都可能以兩種方式存在。前臺和後臺,所謂前臺程序就是使用者目前的螢幕上可以進行操作的。後臺程序則是實際在操作,但是由於螢幕無法看到的程序,通常使用後臺的方式執行。
4)一般系統的服務都是以後臺程序的方式存在的,而且都會常駐在系統中。直到關機才結束。
2、顯示系統執行的程序
ps命令是用來檢視目前系統中,有哪些正在執行的,以及他們的執行情況。可以不加任何引數。一般來說使用 ps -aux
ps顯示的欄位資訊:
欄位 | 說明 |
PID | 程序識別號 |
TTY | 終端機號 |
TIME | 此程序所耗CPU時間 |
CMD | 正在執行的命令或程序名 |
ps -a:顯示當前終端所有程序資訊
ps -u:以使用者的格式顯示程序資訊
ps -x:顯示後臺程序執行的引數
3、ps指令詳解
ps -aux | grep XXX
比如檢視有沒有sshd
指令說明:
- System V展示風格
- User:使用者名稱稱
- PID:程序號
- %CPU:程序佔用CPU的百分比
- %MEM:程序佔用實體記憶體的百分比
- VSZ:程序佔用的虛擬記憶體大小(單位:KB)
- RSS:程序佔用的實體記憶體大小(單位:KB)
- TT :終端名稱,縮寫
- STAT:程序狀態,其中S-睡眠,s-表示該程序是會話的先導程序,N-代表程序擁有比普通優先順序更低的優先順序,R-正在執行,D-短期等待,Z-僵死程序,T-被跟蹤或者被停止等等。
- STARTED:程序啟動的時間
- TIME:CPU時間,程序使用CPU的總時間
- COMMAND:啟動程序所用的命令和引數,如果過長會被截斷顯示
3、應用例項
要求,以全格式方式顯示當前所有的程序,檢視程序的父程序。
- ps -ef 是以全格式顯示當前所有程序。
- -e 顯示所有程序,-f 全格式
-
ps -ef | grep XXX
-
是BSD風格
-
UID:使用者ID
-
PID:程序ID
-
PPID:父程序
-
C:CPU用於計算執行優先順序的因子。數值越大,表名程序是CPU密集型運算,執行優先順序越低;數值越小,表名程序I/O密集型運算,執行優先順序會提高。
-
STIME:程序啟動的時間
-
TTY:完整的終端名稱、
-
TIME:CPU時間
-
CMD:啟動程序所用命令和引數。
-
檢視sshd程序的父程序號?
4、終止程序kill和killall
若是某個程序執行到一半需要停止時,或是已經消耗了很大的系統資源時,此時可以考慮停止該程序。使用kill命令來完成此項任務。
語法:
kill [選項] 程序號 (功能描述:通過程序號殺死程序)
killall 程序名稱 (功能描述:通過程序名稱殺死程序,也支援萬用字元,這在系統因負載過大而變得很慢時很有用)
常用選項
- 9 :表示強迫程序立即停止
最佳實踐:
1)踢掉某個非法登入的使用者
2)終止遠端登入服務sshd,在適當的時候再次重啟sshd服務
3)終止多個gedit編輯器
killall gedit
4)強制殺掉一個終端
5、檢視程序樹
pstree [選項] #可以更加直觀的來看程序資訊
常用選項:
-p:顯示程序的PID
-u:顯示程序的所屬使用者