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
- 執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動
- 執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸
- 執行級別2:多使用者狀態(沒有NFS),不支援網路
- 執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式
- 執行級別4:系統未使用,保留
- 執行級別5:X11控制檯,登陸後進入圖形GUI模式
- 執行級別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 :顯示那個程序在呼叫