1. 程式人生 > 實用技巧 >Linux程序管理

Linux程序管理

Linux程序管理

1. 基本介紹

在LINUX中,每個執行的程式(程式碼)都稱為一個程序。每一個程序都分配一個ID號。

每一個程序,都會對應一個父程序,而這個父程序可以複製多個子程序。例如www伺服器。

每個程序都可能以兩種方式存在的。前臺與後臺,所謂前臺程序就是使用者目前的螢幕上可以進行操作的。後臺程序則是實際在操作,但由於螢幕上無法看到的程序,通常使用後臺方式執行。

一般系統的服務都是以後臺程序的方式存在,而且都會常駐在系統中。直到關機才才結束。

2. 顯示系統執行的程序

ps命令是用來檢視目前系統中,有哪些正在執行,以及它們執行的狀況。可以不加任何引數

ps

欄位 說明
PID 程序識別號
TTY 終端機號
TIME 此程序所消耗 CPU 時間
CMD 正在執行的命令或程序名

帶引數寫法:

ps -a   #顯示當前終端所有程序資訊
ps -u   #以使用者的格式顯示程序資訊
ps -x   #顯示後臺程序執行的引數
ps -aux | grep xxx    #查詢並過濾

USER:使用者名稱稱
PID:程序號
%CPU:程序佔用CPU的百分比
%MEM:程序佔用實體記憶體的百分比
VSZ:程序佔用的虛擬記憶體大小(單位:KB)
RSS:程序佔用的實體記憶體大小(單位:KB)
TT:終端名稱,縮寫.
STAT:程序狀態,其中S-睡眠,s-表示該程序是會話的先導程序,N-表示程序擁有比普通優先順序更低的優先順序,R-正在執行,D-短期等待,Z-僵死程序,T-被跟蹤或者被停止等等
STARTED

:程序的啟動時間
TIME:CPU時間,即程序使用CPU的總時間
COMMAND:啟動程序所用的命令和引數,如果過長會被截斷顯示

ps -ef | grep xxx    #以全格式顯示當前所有程序,並進行過濾

UID:使用者ID
PID:程序ID
PPID:父程序ID
C:CPU用於計算執行優先順序的因子。數值越大,表明程序是CPU密集型運算,執行優先順序會降低;數值越小,表明程序是I/O密集型運算,執行優先順序會提高
STIME:程序啟動的時間
TTY:完整的終端名稱
TIME:CPU時間
CMD:啟動程序所用的命令和引數

3. 終止程序

若是某個程序執行一半需要停止時,或是已消了很大的系統資源時,此時可以考慮停止該程序。使用kill命令來完成此項任務

kill [選項] <程序號>    #通過程序號殺死程序
killall <程序名稱>      #通過程序名稱殺死程序,也支援萬用字元,這在系統因負載過大而變得很慢時很有用

常用選項:

​ -9 : 表示強制程序立即停止,有些程序用普通停止可能不生效,帶上這個選項強制停止

4. 檢視程序數

pstree [選項]    #以樹形檢視程序關係

常用選項:

​ -p :顯示程序的PID

​ -u :顯示程序的所屬使用者

5. 服務管理

5.1 介紹

服務(service) 本質就是程序,但是是執行在後臺的,通常都會監聽某個埠,等待其它程式的請求,比如(mysql , sshd 防火牆等),因此我們又稱為守護程序

5.2 服務管理指令

service <服務名> [start|stop|restart|reload|status]

在CentOS7後不在使用service,而是systemctl

5.3 檢視防火牆狀態

service iptables status   #檢視防火牆狀態
service iptables stop     #關閉
service iptables start    #開啟

關閉或者啟用防火牆後,立即生效。[telnet 測試某個埠即可]

這種方式只是臨時生效,當重啟系統後,還是迴歸以前對服務的設定。

如果希望設定某個服務自啟動或關閉永久生效,要使用chkconfig指令

5.4 檢視服務名

1)使用setup ->系統服務 前面帶 * 符號的表示執行

2)/etc/init.d/服務名稱

5.5 服務的執行級別

檢視或者修改預設級別:vi /etc/inittab

Linux系統有7種執行級別(runlevel):常用的是級別3和5

  1. 執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動
  2. 執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸
  3. 執行級別2:多使用者狀態(沒有NFS),不支援網路
  4. 執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式
  5. 執行級別4:系統未使用,保留
  6. 執行級別5:X11控制檯,登陸後進入圖形GUI模式
  7. 執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動

5.6 開機的流程說明

5.7 chkconfig指令

通過chkconfig 命令可以給每個服務的各個執行級別設定自啟動/關閉

chkconfig --list | grep xxx          #通過過濾檢視指定服務
chkconfig <服務名> --list             #直接通過服務名檢視服務
chkconfig --level n <服務名> on/off   #修改服務執行級別
chkconfig <服務名> on/off             #不指定級別表示設定所有級別

通過chkconfig 命令可以給每個服務的各個執行級別設定自啟動/關閉

6. 程序監控

6.1 動態程序監控

top與ps命令相似,用來顯示正在執行的程序,top與ps的最大不同在於top在執行一段時間可以更新正在執行的程序

top [選項]

選項:

​ -d <秒數> :指定top命令每個幾秒更新,預設是3秒

​ -i :使top不顯示任何閒置或僵死程序

​ -p :通過指定監控程序ID來僅僅監控某個程序的狀態

互動操作:

P :以cpu使用率排序,預設就是此項

M :以記憶體使用率排序

N :以pid排序

q :退出top

u : 輸入 “u” 再輸入使用者名稱 回車,監控特定使用者

k :輸入 “k” 再輸入程序pid 回車,終止程序

示例:輸入 “u” 再輸入root

6.2 監控網路情況

netstat [選項]
netstat -nap

選項:

​ -an : 按一定順序排列輸出

​ -p :顯示那個程序在呼叫