1. 程式人生 > >【Linux】程序管理

【Linux】程序管理

一、基本介紹

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

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

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

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

二、顯示系統執行的程序

1.ps指令

   檢視程序使用的指令是 ps,一般來說使用引數是 ps -aux(可配合管道符使用)

                ps -a:顯示當前終端的所有程序資訊

                ps -u:以使用者的格式顯示程序資訊

                ps -x:顯示後臺程序執行的引數

2.pstree指令

基本語法:pstree [選項],可以更加直觀的來看程序資訊。

常用選項:-p:顯示程序的PID

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

三、終止程序kill 和 killall

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

基本用法:kill [選項] 程序號 (通過程序號殺死程序)

                  killall 程序名稱   (通過程序名殺死程序,也支援萬用字元,例如 killall a*(將程序名以a開頭的全部殺死),這在系統因負載過大而變得很慢時很有用)

常用選項:-9:表示強迫程序立即停止

四、服務管理

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

服務管理指令:service  服務名 [start | stop | restart | reload | status]      

                         在CentOS7.0後 不再使用service ,而是 systemctl 

案例:1.檢視當前防火牆狀況.

         2.關閉防火牆

       對於上面關閉防火牆指令,系統會立即生效,但是這種方法只是臨時的,當下一次系統重新啟動時還是會迴歸之前對服務的設定。如果想要設定某個服務自啟動或永久生效,要使用chkconfig指令。

檢視系統有那些服務:方式1:在終端輸入setup 後顯示下圖,然後選擇系統服務。

                         

                             下圖中打了星號的是會自動啟動服務

                   

               方式2.直接使用指令 /etc/init.d  

               

五、服務的執行級別

檢視或者修改預設級別可以使用指令: vim /etc/inittab

Linux系統有7種執行級別(runlevel):常用的是級別3和5(每一個服務可在這七種執行級別下設定是否自啟動

執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動

執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸

執行級別2:多使用者狀態(沒有NFS),不支援網路 

執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式

執行級別4:系統未使用,保留

執行級別5:X11控制檯,登陸後進入圖形GUI模式

執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動 

開機的執行流程: 

六、chkconfig指令

基本介紹:通過該命令可以檢視或修改每個服務在各個執行級別設定是否自啟動(重啟依舊有效)

                  但是該指令執行後不會立即生效,重啟後才會生效。

基本用法:1.chkconfig --list

                     用於檢視系統中每個服務在每個執行級別下是否自啟動

                    下圖左邊為服務名稱,右邊為該服務在0~6執行級別是否自啟動

               2.chkconig 服務名 --list

                  用於檢視指定服務在每個執行級別下是否自啟動

               3.指令:chkconig 服務名 on/off

                             用於修改指定服務在所有的執行級別下是否自啟動

                  指令: chkconig --level 執行級別 服務名 on/off

                             用於修改指定服務在指定的執行級別下是否自啟動

                  例如:修改sshd服務在執行級別5下關閉自啟動

            

七、動態監控程序(top指令)

 基本介紹:top與ps命令很相似。它們都用來顯示程序。top與ps最大的不同之處,在於top 在執行一段時間可以更新正在執行的的程序.

                   top命令是一個互動命令,在執行top的時候還可以執行很多命令。

 基本語法:top [選項]

 常用選項:-d 秒數       (指定top命令每隔幾秒更新一次,預設是在3秒)

                    -i                (使top不現實任何限制或者僵死程序)

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

 互動操作:在輸入top命令檢視程序狀態後,此時可以再輸入其他命令(注意大小寫

                   p:以cpu使用率排序(預設情況就是這樣)

                   M:以記憶體的使用頻率排序

                   N:以pid 排序

                   q:退出top

 案例:1.首先檢視所有程序的情況,然後只檢視root使用者的程序

           top:輸入此命令,按回車鍵,檢視執行的程序

           u:然後輸入“u”回車,再輸入使用者名稱,即可只檢視指定使用者的程序

   

    2.終止指定的程序。 

       top:輸入此命令,按回車鍵,檢視執行的程序

       k:然後輸入“k”回車,再輸入要結束的程序ID號 

八、檢視系統網路情況 netstat指令

基本語法:netstat [選項]

常用選項:-an 按一定順序排列輸出

                  -p   顯示那個程序在呼叫

案例:檢視系統所有的網路服務有哪些