1. 程式人生 > >Linux_程序管理(一)

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:顯示程序的所屬使用者