版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目7進(jìn)程與服務(wù)管理麒麟操作系統(tǒng)應(yīng)用活頁式教程學(xué)習(xí)目標(biāo)?知識(shí)目標(biāo)1.了解進(jìn)程的特點(diǎn)及作用、進(jìn)程的分類、進(jìn)程狀態(tài)的轉(zhuǎn)換2.掌握服務(wù)的特點(diǎn)、服務(wù)的分類3.掌握進(jìn)程的查看方法、進(jìn)程管理命令、進(jìn)程優(yōu)先級(jí)的調(diào)整方法4.掌握服務(wù)的查看方法及服務(wù)啟動(dòng)與自啟動(dòng)方法? 能力目標(biāo)1.能夠查看系統(tǒng)中運(yùn)行的進(jìn)程,判斷服務(wù)器的健康狀態(tài)2.能夠通過命令及時(shí)結(jié)束不需要的進(jìn)程,調(diào)整進(jìn)程的優(yōu)先級(jí)3.能夠掌握服務(wù)的分類,并使用命令啟動(dòng)與自啟動(dòng)服務(wù)
?素養(yǎng)目標(biāo)1.培養(yǎng)知識(shí)遷移能力、強(qiáng)化創(chuàng)新思維2.加強(qiáng)信息意識(shí),提升信息應(yīng)用能力3.提高嚴(yán)謹(jǐn)?shù)囊?guī)范意識(shí)及職業(yè)素養(yǎng)任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)contents目錄任務(wù)2進(jìn)程管理任務(wù)3服務(wù)管理任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)使用系統(tǒng)監(jiān)視器查看進(jìn)程使用ps命令查看進(jìn)程使用top命令動(dòng)態(tài)查看進(jìn)程任務(wù)流程使用pstree命令查看進(jìn)程關(guān)系任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)步驟1:使用系統(tǒng)監(jiān)視器查看進(jìn)程。選擇“開始”→“常用軟件”→“系統(tǒng)監(jiān)視器”命令,從“開始”菜單進(jìn)入系統(tǒng)監(jiān)視器,如圖7-1所示?;蛘咴谧烂嫒蝿?wù)欄處右擊,在彈出的快捷菜單中選擇“系統(tǒng)監(jiān)視器”命令進(jìn)入系統(tǒng)監(jiān)視器,如圖7-2所示。進(jìn)入系統(tǒng)監(jiān)視器后,可以看到進(jìn)程的狀態(tài)、CPU占用率、優(yōu)先級(jí)、PID、占用內(nèi)存大小等信息,“系統(tǒng)監(jiān)視器”界面如圖7-3所示。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)步驟1:使用系統(tǒng)監(jiān)視器查看進(jìn)程。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)圖7-1從“開始”菜單進(jìn)入系統(tǒng)監(jiān)視器圖7-2通過快捷菜單命令進(jìn)入系統(tǒng)監(jiān)視器步驟1:使用系統(tǒng)監(jiān)視器查看進(jìn)程。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)圖7-3“系統(tǒng)監(jiān)視器”界面
知識(shí)鏈接:1.認(rèn)識(shí)進(jìn)程麒麟操作系統(tǒng)中進(jìn)程管理的主要目的和Windows操作系統(tǒng)中進(jìn)程管理的主要目的是一樣的,即查看操作系統(tǒng)中運(yùn)行的程序和進(jìn)程、判斷服務(wù)器的健康狀態(tài)并強(qiáng)制終止不需要的進(jìn)程。進(jìn)程是正在執(zhí)行的一個(gè)程序或命令,每個(gè)進(jìn)程都是一個(gè)運(yùn)行的實(shí)體,都有自己的地址空間,并占用一定的系統(tǒng)資源。程序是用戶使用計(jì)算機(jī)語言編寫的、可以實(shí)現(xiàn)特定目標(biāo)或解決特定問題的代碼集合。程序是存儲(chǔ)在磁盤上包含可執(zhí)行機(jī)器指令和數(shù)據(jù)的靜態(tài)實(shí)體,而進(jìn)程是在操作系統(tǒng)中執(zhí)行特定任務(wù)的動(dòng)態(tài)實(shí)體。一個(gè)程序允許有多個(gè)進(jìn)程,而每個(gè)運(yùn)行中的程序至少由一個(gè)進(jìn)程組成。作為一個(gè)多用戶、多任務(wù)的操作系統(tǒng),麒麟操作系統(tǒng)中的每個(gè)進(jìn)程都是彼此獨(dú)立的,都有自己獨(dú)立的權(quán)限與職責(zé)。用戶的程序不會(huì)干擾其他用戶的程序或者操作系統(tǒng)本身。進(jìn)程間存在并列關(guān)系,還存在父進(jìn)程和子進(jìn)程的關(guān)系,這種進(jìn)程間的父子關(guān)系實(shí)際上是管理和被管理的關(guān)系。當(dāng)父進(jìn)程終止時(shí),子進(jìn)程也隨之終止;但當(dāng)子進(jìn)程終止時(shí),父進(jìn)程并不一定終止。例如,當(dāng)www服務(wù)器運(yùn)行httpd時(shí),其子進(jìn)程終止,而父進(jìn)程并不會(huì)因?yàn)樽舆M(jìn)程的終止而終止。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:2.進(jìn)程管理的作用進(jìn)程管理的作用和Windows操作系統(tǒng)中任務(wù)管理器的非常類似,主要有以下3種。1)判斷服務(wù)器的運(yùn)行狀態(tài)運(yùn)維工程師最主要的工作就是保證服務(wù)器安全、穩(wěn)定地運(yùn)行。進(jìn)程管理最主要的工作就是判斷服務(wù)器當(dāng)前運(yùn)行狀態(tài)是否健康,在服務(wù)器出現(xiàn)問題時(shí),需要人為干預(yù)解決問題。2)查看操作系統(tǒng)中所有的進(jìn)程通過查看操作系統(tǒng)中所有正在運(yùn)行的進(jìn)程,可以判斷操作系統(tǒng)中運(yùn)行了哪些服務(wù)、是否有非法服務(wù)在運(yùn)行。3)終止進(jìn)程這是進(jìn)程管理中最不常用的手段。當(dāng)需要終止進(jìn)程時(shí),會(huì)通過正確關(guān)閉手段來結(jié)束進(jìn)程。只有在正確結(jié)束進(jìn)程的手段失效的情況下,才會(huì)考慮使用kill命令終止進(jìn)程。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:3.認(rèn)識(shí)服務(wù)系統(tǒng)服務(wù)是運(yùn)行在后臺(tái),且長期運(yùn)行在內(nèi)存中的進(jìn)程,它可以提供一些本地操作系統(tǒng)或網(wǎng)絡(luò)的功能。我們把實(shí)現(xiàn)這些功能的應(yīng)用程序稱作服務(wù)(Service)。服務(wù)是系統(tǒng)啟動(dòng)之后一直存在、常駐內(nèi)存的進(jìn)程,而守護(hù)進(jìn)程(Daemon)就是為了實(shí)現(xiàn)服務(wù)功能的進(jìn)程,有時(shí)可以把服務(wù)與守護(hù)進(jìn)程等同起來。服務(wù)的本質(zhì)就是進(jìn)程,由于其通常都會(huì)監(jiān)聽某個(gè)端口,等待其他程序的請(qǐng)求,如MySQL、sshd、防火墻等,因此我們又稱其為守護(hù)進(jìn)程。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:4.服務(wù)的分類按照服務(wù)安裝方式,服務(wù)可以分為兩種。 使用deb、RPM包安裝的服務(wù):服務(wù)的安裝位置在deb、RPM包設(shè)定好的目錄下。這些包啟動(dòng)的服務(wù)通常會(huì)加入系統(tǒng)服務(wù)目錄,通過service、systemctl等配合參數(shù)可以啟動(dòng)(如systemctlstartmysqld)。 使用源碼包編譯安裝的服務(wù):可以手動(dòng)指定安裝目錄。源碼包安裝的服務(wù)默認(rèn)需要使用啟動(dòng)腳本文件的絕對(duì)路徑配合參數(shù)來啟動(dòng)(如/usr/local/nginx/sbin/nginxstart)。5.服務(wù)的狀態(tài)服務(wù)的狀態(tài)有兩種:一種是啟用的服務(wù),也就是服務(wù)正在運(yùn)行中active(running);還有一種是未啟用的服務(wù),也就是服務(wù)處于關(guān)閉停止?fàn)顟B(tài)inactive(dead)。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)步驟2:使用ps命令查看進(jìn)程。1.查看所有用戶的進(jìn)程信息使用如下命令查看所有終端上所有用戶有關(guān)進(jìn)程的信息,顯示結(jié)果如圖7-4所示。psaux
圖7-4使用“psaux”命令的顯示結(jié)果任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:1.ps命令ps是最常用的監(jiān)控進(jìn)程的命令,通過此命令可以查看系統(tǒng)中所有運(yùn)行進(jìn)程的詳細(xì)信息。根據(jù)顯示的信息可以確定哪個(gè)進(jìn)程正在運(yùn)行、哪個(gè)進(jìn)程被掛起、進(jìn)程已運(yùn)行多長時(shí)間、進(jìn)程正在使用的資源、進(jìn)程的相對(duì)優(yōu)先級(jí),以及進(jìn)程標(biāo)識(shí)符(PID)等信息。ps命令的格式如下。ps[選項(xiàng)]常用選項(xiàng)如下。
-a:顯示系統(tǒng)中與tty相關(guān)的(除了會(huì)話組長)所有進(jìn)程的信息。
-e:顯示所有進(jìn)程的信息。
-f:顯示進(jìn)程的所有信息。
-l:以長格式顯示進(jìn)程信息。
-r:只顯示正在運(yùn)行的進(jìn)程。
-u:顯示面向用戶的格式(包括用戶名、CPU及內(nèi)存使用情況等信息)。
-x:顯示所有非控制終端上的進(jìn)程信息。
--pid:顯示由進(jìn)程ID指定的進(jìn)程信息。
--tty:顯示指定終端上的進(jìn)程信息。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:2.進(jìn)程的分類根據(jù)進(jìn)程的特點(diǎn),可以把進(jìn)程分為3類:交互進(jìn)程、批處理進(jìn)程和守護(hù)進(jìn)程。(1)交互進(jìn)程:是由Shell啟動(dòng)的進(jìn)程,它既可以在前臺(tái)運(yùn)行,又可以在后臺(tái)運(yùn)行。交互進(jìn)程在執(zhí)行過程中要求與用戶進(jìn)行交互操作。簡(jiǎn)單來說,就是用戶需要給出某些參數(shù)或者信息,進(jìn)程才能繼續(xù)執(zhí)行。(2)批處理進(jìn)程:與Windows操作系統(tǒng)原來的批處理十分類似,是一個(gè)進(jìn)程序列。該進(jìn)程負(fù)責(zé)按照順序啟動(dòng)其他進(jìn)程。(3)守護(hù)進(jìn)程:是執(zhí)行特定功能或者執(zhí)行系統(tǒng)相關(guān)任務(wù)的后臺(tái)進(jìn)程。守護(hù)進(jìn)程只是一個(gè)特殊的進(jìn)程,不是內(nèi)核的組成部分。許多守護(hù)進(jìn)程在系統(tǒng)啟動(dòng)時(shí)啟動(dòng),直到系統(tǒng)關(guān)閉時(shí)才停止運(yùn)行。而某些守護(hù)進(jìn)程只在需要時(shí)啟動(dòng),如FTP或者Apache服務(wù)等。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:根據(jù)進(jìn)程狀態(tài)的不同,又可以把進(jìn)程分為另外3類:守護(hù)進(jìn)程、孤兒進(jìn)程和僵尸進(jìn)程。(1)守護(hù)進(jìn)程:所有守護(hù)進(jìn)程都可以超級(jí)用戶(用戶ID為0)的優(yōu)先權(quán)運(yùn)行,守護(hù)進(jìn)程沒有控制終端,其父進(jìn)程都是systemd進(jìn)程(即1號(hào)進(jìn)程)。(2)孤兒進(jìn)程:一個(gè)父進(jìn)程退出后,它的一個(gè)或多個(gè)子進(jìn)程還在運(yùn)行,那么這些子進(jìn)程將成為孤兒進(jìn)程。孤兒進(jìn)程會(huì)被systemd進(jìn)程收養(yǎng),并由systemd進(jìn)程對(duì)它們完成狀態(tài)收集工作。(3)僵尸進(jìn)程:一個(gè)子進(jìn)程結(jié)束但是沒有完全釋放內(nèi)存,該進(jìn)程將成為僵尸進(jìn)程。當(dāng)僵尸進(jìn)程的父進(jìn)程結(jié)束后,該僵尸進(jìn)程會(huì)被systemd進(jìn)程收養(yǎng),最終被回收。僵尸進(jìn)程會(huì)導(dǎo)致資源的浪費(fèi),而孤兒進(jìn)程不會(huì)。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:3.進(jìn)程的狀態(tài)通常在操作系統(tǒng)中,進(jìn)程至少有3種基本狀態(tài),分別為運(yùn)行狀態(tài)、就緒狀態(tài)和封鎖狀態(tài)。(1)運(yùn)行狀態(tài):是指當(dāng)前進(jìn)程已被分配到CPU中,它的程序正在處理器上執(zhí)行時(shí)的狀態(tài)。處于這種狀態(tài)的進(jìn)程數(shù)目不能大于CPU的數(shù)目。在一般單CPU機(jī)制中,任何時(shí)刻處于運(yùn)行狀態(tài)的進(jìn)程至多有一個(gè)。(2)就緒狀態(tài):是指進(jìn)程已具備運(yùn)行條件,但因?yàn)槠渌M(jìn)程正在占用CPU,所以暫時(shí)不能運(yùn)行而等待被分配CPU的狀態(tài)。一旦把CPU分配給它,就可立即運(yùn)行。在操作系統(tǒng)中,處于就緒狀態(tài)的進(jìn)程數(shù)目可以是多個(gè)的。(3)封鎖狀態(tài):是指進(jìn)程因等待某種事件發(fā)生(例如,等待某一輸入、輸出操作完成,或者等待其他進(jìn)程發(fā)來的信號(hào)等)而暫時(shí)不能運(yùn)行的狀態(tài)。也就是說,處于封鎖狀態(tài)的進(jìn)程尚不具備運(yùn)行條件,即使CPU空閑,它也無法使用(這種狀態(tài)有時(shí)也被稱為不可運(yùn)行狀態(tài)或掛起狀態(tài))。在操作系統(tǒng)中,處于這種狀態(tài)的進(jìn)程數(shù)目也可以是多個(gè)的。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:進(jìn)程的狀態(tài)可依據(jù)一定的條件和原因而變化。一個(gè)運(yùn)行的進(jìn)程可因某種條件未滿足而放棄CPU,變?yōu)榉怄i狀態(tài)。當(dāng)以后條件得到滿足時(shí),它又變?yōu)榫途w狀態(tài)。僅當(dāng)CPU被釋放時(shí)才從就緒狀態(tài)進(jìn)程中挑選一個(gè)合適的進(jìn)程去運(yùn)行,被選中的進(jìn)程從就緒狀態(tài)變?yōu)檫\(yùn)行狀態(tài)。進(jìn)程的狀態(tài)及其變化示意圖如圖7-5所示。挑選進(jìn)程、分配CPU的工作是由進(jìn)程調(diào)度程序完成的。另外,在麒麟操作系統(tǒng)中進(jìn)程(Process)和任務(wù)(Task)是同一個(gè)意思。
圖7-5進(jìn)程的狀態(tài)及其變化示意圖任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:在麒麟操作系統(tǒng)中,進(jìn)程主要有以下4種狀態(tài),進(jìn)程狀態(tài)表如表7-1所示。(1)可運(yùn)行狀態(tài):此時(shí)進(jìn)程正在運(yùn)行(即系統(tǒng)的當(dāng)前進(jìn)程)或者準(zhǔn)備運(yùn)行(即進(jìn)行處于就緒狀態(tài))。(2)等待狀態(tài):此時(shí)進(jìn)程在等待一個(gè)事件的發(fā)生或某種系統(tǒng)資源。麒麟操作系統(tǒng)中有兩種等待進(jìn)程,分別為可中斷的和不可中斷的??芍袛嗟牡却M(jìn)程可以被某一信號(hào)中斷;而不可中斷的等待進(jìn)程不受信號(hào)的打擾,將一直等待硬件狀態(tài)的改變。(3)僵化狀態(tài):此時(shí)進(jìn)程由于某些原因被終止,但是該進(jìn)程的控制結(jié)構(gòu)task_struct仍然保留著。(4)停止?fàn)顟B(tài):此時(shí)進(jìn)程通常通過接收一個(gè)信號(hào)被停止。正在被調(diào)試的進(jìn)程可能處于停止?fàn)顟B(tài)。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-1進(jìn)程狀態(tài)表狀態(tài)英文含義可運(yùn)行狀態(tài)Runnable進(jìn)程可以被執(zhí)行等待狀態(tài)Sleeping進(jìn)程正在等待某種系統(tǒng)資源僵化狀態(tài)Zombie進(jìn)程試圖消亡停止?fàn)顟B(tài)Stopped進(jìn)程被掛起(不允許執(zhí)行)
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-2“psaux”命令的輸出含義4.“psaux”命令的輸出含義“psaux”命令的輸出含義如表7-2所示。表頭含義USER該進(jìn)程是由哪個(gè)用戶產(chǎn)生的PID進(jìn)程的ID%CPU該進(jìn)程占用CPU資源的百分比。占用的百分比越高,進(jìn)程越耗費(fèi)資源%MEM該進(jìn)程占用物理內(nèi)存的百分比。占用的百分比越高,進(jìn)程越耗費(fèi)資源VSZ該進(jìn)程占用虛擬內(nèi)存的大小,單位為KBRSS該進(jìn)程占用實(shí)際物理內(nèi)存的大小,單位為KBTTY該進(jìn)程是在哪個(gè)終端運(yùn)行的。其中,tty1~tty7代表本地控制臺(tái)終端(可以通過快捷鍵“Alt+F1”~快捷鍵“Alt+F7”切換不同的終端),tty1~tty6是本地的字符界面終端,tty7是圖形終端。pts/0~pts/255代表虛擬終端,一般是遠(yuǎn)程連接的終端,第一個(gè)遠(yuǎn)程連接占用pts/0,第二個(gè)遠(yuǎn)程連接占用pts/1,以此類推
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-2“psaux”命令的輸出含義4.“psaux”命令的輸出含義“psaux”命令的輸出含義如表7-2所示。表頭含義STAT進(jìn)程狀態(tài)。常見的狀態(tài)有以下幾種。-D:不可被喚醒的睡眠狀態(tài),通常用于I/O情況。-R:該進(jìn)程正在運(yùn)行。-S:該進(jìn)程處于睡眠狀態(tài),可被喚醒。-T:該進(jìn)程處于停止?fàn)顟B(tài),可能是進(jìn)程在后臺(tái)暫停或處于除錯(cuò)狀態(tài)。-W:該進(jìn)程處于內(nèi)存交互狀態(tài)(從2.6內(nèi)核開始無效)。-X:死掉的進(jìn)程(應(yīng)該不會(huì)出現(xiàn))。-Z:僵尸進(jìn)程。進(jìn)程已經(jīng)中止,但是部分程序還在內(nèi)存當(dāng)中。-<:高優(yōu)先級(jí)(以下狀態(tài)在BSD格式中出現(xiàn))。
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-2“psaux”命令的輸出含義4.“psaux”命令的輸出含義“psaux”命令的輸出含義如表7-2所示。表頭含義STAT-N:低優(yōu)先級(jí)。-L:被鎖入內(nèi)存。-s:包含子進(jìn)程。-l:多線程。-+:位于后臺(tái)START該進(jìn)程的啟動(dòng)時(shí)間TIME該進(jìn)程占用CPU的運(yùn)算時(shí)間,注意不是系統(tǒng)時(shí)間COMMAND產(chǎn)生此進(jìn)程的命令名USER該進(jìn)程是由哪個(gè)用戶產(chǎn)生的步驟2:使用ps命令查看進(jìn)程。2.查看系統(tǒng)中所有進(jìn)程的全部信息使用如下命令查看系統(tǒng)中所有進(jìn)程的全部信息,如父進(jìn)程的PID、進(jìn)程優(yōu)先級(jí)等,顯示結(jié)果如圖7-6所示。ps-le
圖7-6使用“ps-le”命令的顯示結(jié)果任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:“ps-le”命令輸出含義。“ps-le”命令的輸出含義如表7-3所示。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-3“ps-le”命令的輸出含義表頭含義F進(jìn)程標(biāo)志,說明進(jìn)程的權(quán)限,常見的標(biāo)志有兩個(gè)。1:進(jìn)程可以被復(fù)制,但是不能被執(zhí)行;4:進(jìn)程使用超級(jí)用戶權(quán)限S進(jìn)程狀態(tài)。具體的狀態(tài)和“psaux”命令中的STAT狀態(tài)一致UID運(yùn)行此進(jìn)程的用戶的IDPID進(jìn)程的ID
知識(shí)鏈接:“ps-le”命令輸出含義?!皃s-le”命令的輸出含義如表7-3所示。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-3“ps-le”命令的輸出含義表頭含義PPID父進(jìn)程的IDC該進(jìn)程的CPU使用率,使用百分比來表示PRI進(jìn)程的優(yōu)先級(jí)。數(shù)值越小,該進(jìn)程的優(yōu)先級(jí)越高,越早被CPU執(zhí)行NI進(jìn)程的優(yōu)先級(jí)。數(shù)值越小,該進(jìn)程越早被執(zhí)行ADDR該進(jìn)程在內(nèi)存的哪個(gè)位置SZ該進(jìn)程占用多大內(nèi)存WCHAN該進(jìn)程是否運(yùn)行?!?”代表正在運(yùn)行TTY該進(jìn)程由哪個(gè)終端產(chǎn)生TIME該進(jìn)程占用CPU的運(yùn)算時(shí)間,注意不是系統(tǒng)時(shí)間CMD產(chǎn)生此進(jìn)程的命令名步驟2:使用ps命令查看進(jìn)程。3.查看當(dāng)前登錄用戶產(chǎn)生的進(jìn)程使用如下命令查看當(dāng)前登錄用戶產(chǎn)生的進(jìn)程,顯示結(jié)果如圖7-7所示??梢钥闯觯壳皬膒ts/0虛擬終端登錄只產(chǎn)生了兩個(gè)進(jìn)程,一個(gè)是登錄之后生成的Shell,也就是bash;另一個(gè)是正在執(zhí)行的ps命令。ps-l
圖7-7使用“ps-l”命令的顯示結(jié)果任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)步驟3:使用top命令動(dòng)態(tài)查看進(jìn)程。使用如下命令動(dòng)態(tài)查看系統(tǒng)進(jìn)程及狀態(tài),顯示結(jié)果如圖7-8所示。top
圖7-8使用top命令的顯示結(jié)果任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:top命令。ps命令可以一次性給出當(dāng)前系統(tǒng)中的進(jìn)程狀態(tài),但使用此命令得到的信息缺乏時(shí)效性。同時(shí),如果管理員需要實(shí)時(shí)監(jiān)控進(jìn)程的運(yùn)行情況,則必須不停地執(zhí)行ps命令,這顯然是缺乏效率的。top命令和ps命令的基本作用是相同的,用于顯示系統(tǒng)當(dāng)前的進(jìn)程及其狀態(tài),但是使用top命令是一個(gè)動(dòng)態(tài)顯示過程,用戶可以通過按鍵來不斷刷新當(dāng)前狀態(tài)。如果在前臺(tái)執(zhí)行,則該命令將獨(dú)占前臺(tái),直到用戶終止該進(jìn)程為止。top命令的格式如下。top[選項(xiàng)]任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:常用選項(xiàng)如下。
-b:使用批處理模式。
-c:在進(jìn)程列表中顯示完整的命令行信息。
-i:在執(zhí)行top命令時(shí),忽略閑置或是已成為Zombie的程序。
-q:持續(xù)監(jiān)控程序執(zhí)行的狀況。
-s:使用保密模式,消除互動(dòng)模式下的潛在危機(jī)。
-S:在進(jìn)程列表中顯示累計(jì)的CPU時(shí)間。
-d:指定top命令更新的時(shí)間間隔(秒),默認(rèn)是3秒。
-u:指定顯示某個(gè)用戶的進(jìn)程。top命令的輸出內(nèi)容是動(dòng)態(tài)的,默認(rèn)每隔3秒刷新一次。top命令的輸出主要分為兩部分。第一部分是前5行,顯示的是整個(gè)系統(tǒng)的資源使用狀況信息,可以通過這些信息來判斷服務(wù)器的資源使用狀態(tài);第二部分從第6行開始,顯示的是系統(tǒng)中進(jìn)程的信息。以圖7-8為例,表7-4所示為top命令第一部分輸出內(nèi)容說明,表7-5所示為top命令第二部分輸出內(nèi)容說明。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-4top命令第一部分輸出內(nèi)容說明位置含義內(nèi)容說明1任務(wù)隊(duì)列信息19:47:33系統(tǒng)的當(dāng)前時(shí)間up1min系統(tǒng)的運(yùn)行時(shí)間2users當(dāng)前登錄了兩個(gè)用戶任務(wù)隊(duì)列信息loadaverage:1.36,0.71,0.27系統(tǒng)在前1分鐘、5分鐘、15分鐘的平均負(fù)載。如果CPU是單核的,則這個(gè)數(shù)值超過1就是高負(fù)載;如果CPU是四核的,則這個(gè)數(shù)值超過4就是高負(fù)載(平均負(fù)載完全是依據(jù)個(gè)人經(jīng)驗(yàn)來進(jìn)行判斷的,一般認(rèn)為不應(yīng)該超過服務(wù)器CPU的核數(shù))2進(jìn)程信息Tasks:203total系統(tǒng)中的進(jìn)程總數(shù)2running正在運(yùn)行的進(jìn)程數(shù)201sleeping睡眠的進(jìn)程數(shù)0stopped正在停止的進(jìn)程數(shù)0zombie僵尸進(jìn)程數(shù)。如果不是0,則需要手動(dòng)檢查僵尸進(jìn)程
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-4top命令第一部分輸出內(nèi)容說明位置含義內(nèi)容說明1任務(wù)隊(duì)列信息19:47:33系統(tǒng)的當(dāng)前時(shí)間up1min系統(tǒng)的運(yùn)行時(shí)間2users當(dāng)前登錄了兩個(gè)用戶任務(wù)隊(duì)列信息loadaverage:1.36,0.71,0.27系統(tǒng)在前1分鐘、5分鐘、15分鐘的平均負(fù)載。如果CPU是單核的,則這個(gè)數(shù)值超過1就是高負(fù)載;如果CPU是四核的,則這個(gè)數(shù)值超過4就是高負(fù)載(平均負(fù)載完全是依據(jù)個(gè)人經(jīng)驗(yàn)來進(jìn)行判斷的,一般認(rèn)為不應(yīng)該超過服務(wù)器CPU的核數(shù))2進(jìn)程信息Tasks:203total系統(tǒng)中的進(jìn)程總數(shù)2running正在運(yùn)行的進(jìn)程數(shù)201sleeping睡眠的進(jìn)程數(shù)0stopped正在停止的進(jìn)程數(shù)0zombie僵尸進(jìn)程數(shù)。如果不是0,則需要手動(dòng)檢查僵尸進(jìn)程
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-4top命令第一部分輸出內(nèi)容說明位置含義內(nèi)容說明3CPU信息%Cpu(s):2.3us用戶模式占用的CPU百分比1.3sy系統(tǒng)模式占用的CPU百分比0.0ni改變過優(yōu)先級(jí)的用戶進(jìn)程占用的CPU百分比96.3id空閑CPU占用的CPU百分比0.0wa等待輸入/輸出的進(jìn)程占用的CPU百分比0.0hi硬中斷請(qǐng)求服務(wù)占用的CPU百分比0.0si軟中斷請(qǐng)求服務(wù)占用的CPU百分比0.0stst(stealtime)意為虛擬時(shí)間百分比,表示當(dāng)有虛擬機(jī)時(shí),虛擬CPU等待實(shí)際CPU的時(shí)間百分比4物理內(nèi)存信息MiBMem:915.3total物理內(nèi)存的總量,單位為MiB67.9free空閑的物理內(nèi)存數(shù)量。我們使用的是虛擬機(jī),共分配了915.3MB內(nèi)存,所以只有67.9MB的空閑內(nèi)存624.5used已經(jīng)使用的物理內(nèi)存數(shù)量222.9buff/cache作為緩沖的內(nèi)存數(shù)量5交換分區(qū)信息MiBSwap:2048.0total交換分區(qū)(虛擬內(nèi)存)的總大小1939.0free空閑交換分區(qū)的大小109.0used已經(jīng)使用的交換分區(qū)的大小135.9availMem可使用內(nèi)存的大小
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)表7-5top命令第二部分輸出內(nèi)容說明表頭說明PID進(jìn)程的IDUSER該進(jìn)程所屬的用戶PR進(jìn)程的調(diào)度優(yōu)先級(jí),數(shù)值越低表示優(yōu)先級(jí)越高。它的取值范圍是-20(最高優(yōu)先級(jí))~+19(最低優(yōu)先級(jí))NI進(jìn)程的Nice值,用于調(diào)整進(jìn)程在CPU競(jìng)爭(zhēng)中的優(yōu)先級(jí)。它的取值范圍是-20~+19,默認(rèn)值是0。較高的Nice值表示較低的優(yōu)先級(jí),即進(jìn)程會(huì)更少地占用CPU資源VIRT該進(jìn)程使用的虛擬內(nèi)存的大小,單位為KBRES該進(jìn)程使用的物理內(nèi)存的大小,單位為KBSHR共享內(nèi)存的大小,單位為KBS進(jìn)程狀態(tài)%CPU該進(jìn)程占用CPU的百分比%MEM該進(jìn)程占用內(nèi)存的百分比TIME+該進(jìn)程共占用的CPU時(shí)間COMMAND進(jìn)程的命令名
知識(shí)鏈接:任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)通過top命令的第一部分就可以判斷服務(wù)器的健康狀態(tài)。如果前1分鐘、5分鐘、15分鐘的平均負(fù)載高于1,則證明系統(tǒng)壓力較大。如果CPU的使用率過高或空閑率過低,則證明系統(tǒng)壓力較大。如果物理內(nèi)存的空閑內(nèi)存過小,則也證明系統(tǒng)壓力較大。根據(jù)上面的輸出就可以判斷是什么進(jìn)程占用了系統(tǒng)資源。如果是不必要的進(jìn)程,則應(yīng)該結(jié)束這些進(jìn)程;如果是必要的進(jìn)程,則應(yīng)該增加服務(wù)器資源(如增加虛擬機(jī)內(nèi)存),或者建立集群服務(wù)器。
知識(shí)鏈接:在麒麟操作系統(tǒng)中,進(jìn)程主要有以下4種狀態(tài),進(jìn)程狀態(tài)表如表7-1所示。(1)可運(yùn)行狀態(tài):此時(shí)進(jìn)程正在運(yùn)行(即系統(tǒng)的當(dāng)前進(jìn)程)或者準(zhǔn)備運(yùn)行(即進(jìn)行處于就緒狀態(tài))。(2)等待狀態(tài):此時(shí)進(jìn)程在等待一個(gè)事件的發(fā)生或某種系統(tǒng)資源。麒麟操作系統(tǒng)中有兩種等待進(jìn)程,分別為可中斷的和不可中斷的。可中斷的等待進(jìn)程可以被某一信號(hào)中斷;而不可中斷的等待進(jìn)程不受信號(hào)的打擾,將一直等待硬件狀態(tài)的改變。(3)僵化狀態(tài):此時(shí)進(jìn)程由于某些原因被終止,但是該進(jìn)程的控制結(jié)構(gòu)task_struct仍然保留著。(4)停止?fàn)顟B(tài):此時(shí)進(jìn)程通常通過接收一個(gè)信號(hào)被停止。正在被調(diào)試的進(jìn)程可能處于停止?fàn)顟B(tài)。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)經(jīng)驗(yàn)分享:緩存(Cache)和緩沖(Buffer)的區(qū)別。緩存(Cache)是在讀取硬盤中的數(shù)據(jù)時(shí),把最常用的數(shù)據(jù)保存在內(nèi)存的緩存區(qū)中,當(dāng)再次讀取該數(shù)據(jù)時(shí),就不去硬盤中讀取了,而在緩存中讀取。緩沖(Buffer)是在向硬盤寫入數(shù)據(jù)時(shí),先把數(shù)據(jù)放入緩沖區(qū),再一起向硬盤寫入,把分散的寫操作集中進(jìn)行,減少磁盤碎片和硬盤的反復(fù)尋道,從而提高系統(tǒng)性能。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)步驟4:使用pstree命令查看進(jìn)程關(guān)系。使用如下命令以樹狀結(jié)構(gòu)顯示程序和進(jìn)程之間的關(guān)系,系統(tǒng)進(jìn)程樹如圖7-9所示??梢钥闯?,進(jìn)程以樹狀結(jié)構(gòu)顯示,其中根節(jié)點(diǎn)是systemd進(jìn)程,進(jìn)程的PID是1。其他進(jìn)程按照其父進(jìn)程和子進(jìn)程的關(guān)系依次排列。pstree
圖7-9系統(tǒng)進(jìn)程樹任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)
知識(shí)鏈接:pstree命令。pstree命令用于顯示進(jìn)程樹或相關(guān)的進(jìn)程列表。pstree命令通常與top、ps等命令一起使用,用于查看系統(tǒng)中的進(jìn)程和它們之間的關(guān)系,并且該命令可以以樹狀結(jié)構(gòu)顯示進(jìn)程。在默認(rèn)情況下,可以使用pstree命令顯示當(dāng)前用戶的所有進(jìn)程,也可以使用-u選項(xiàng)指定要輸出的用戶名稱。pstree命令的格式如下。pstree[選項(xiàng)]常用選項(xiàng)如下。
-p:以數(shù)字PID的形式輸出進(jìn)程的ID。
-u:指定要輸出的用戶名稱。
-a:以ASCII字符的形式輸出進(jìn)程的參數(shù)。
-l:除了命令行參數(shù),還顯示進(jìn)程的完整線程信息。
-n:不進(jìn)行裝飾,以緊湊的形式輸出樹狀結(jié)構(gòu)。
-h:不顯示該進(jìn)程的父進(jìn)程。任務(wù)1認(rèn)識(shí)進(jìn)程與服務(wù)任務(wù)2
進(jìn)程管理任務(wù)2進(jìn)程管理查看進(jìn)程的子進(jìn)程的PID結(jié)束進(jìn)程重啟進(jìn)程任務(wù)流程調(diào)整進(jìn)程的優(yōu)先級(jí)步驟1:查看進(jìn)程的子進(jìn)程的PID。使用如下命令查看httpd進(jìn)程樹,確認(rèn)結(jié)束進(jìn)程(1191)的子進(jìn)程PID為3016,如圖7-10所示。pstree–p任務(wù)2進(jìn)程管理
知識(shí)鏈接:知識(shí)鏈接:PID。PID是進(jìn)程標(biāo)識(shí)符(ProcessIdentifier)的縮寫,它是操作系統(tǒng)中用于唯一標(biāo)識(shí)每個(gè)正在運(yùn)行的進(jìn)程的一個(gè)數(shù)字,每個(gè)進(jìn)程都有一個(gè)唯一的PID。PID是由操作系統(tǒng)分配給每個(gè)進(jìn)程的,它可以用于跟蹤和管理進(jìn)程。通過PID,操作系統(tǒng)可以識(shí)別特定的進(jìn)程,并針對(duì)它執(zhí)行各種操作,如啟動(dòng)、終止、掛起、恢復(fù)等。任務(wù)2進(jìn)程管理圖7-10查看httpd進(jìn)程樹
知識(shí)鏈接:PID的作用如下。(1)調(diào)試:可以使用PID來識(shí)別進(jìn)程并執(zhí)行調(diào)試操作,如附加調(diào)試器、觀察變量等。(2)進(jìn)程管理:可以使用PID來執(zhí)行啟動(dòng)、終止、掛起、恢復(fù)進(jìn)程等操作。(3)資源控制:可以使用PID來限制進(jìn)程對(duì)系統(tǒng)資源的訪問,如CPU時(shí)間、內(nèi)存等。需要注意的是,由于PID是動(dòng)態(tài)分配的,當(dāng)進(jìn)程終止后,其PID可能會(huì)被其他新進(jìn)程重新使用,因此在使用PID時(shí)需要確保它指向正確的進(jìn)程。任務(wù)2進(jìn)程管理經(jīng)驗(yàn)分享:1.查看進(jìn)程的PID如果要查看進(jìn)程的PID,則可以使用如下命令。ps-ef|grep<進(jìn)程名>如果要查看httpd進(jìn)程的PID,則可以使用如下命令。ps-ef|grephttpd2.查看進(jìn)程的子進(jìn)程PID使用pstree命令可以顯示進(jìn)程樹,包括父進(jìn)程和子進(jìn)程的關(guān)系。在麒麟操作系統(tǒng)中使用pstree命令的-p選項(xiàng)來查看進(jìn)程的子進(jìn)程PID。任務(wù)2進(jìn)程管理步驟2:結(jié)束進(jìn)程。1.通過PID結(jié)束進(jìn)程(1)使用如下命令結(jié)束PID為3016的進(jìn)程并查看結(jié)果,發(fā)現(xiàn)httpd(3016)沒有被禁止,如圖7-11所示。kill3016pstree-p
圖7-11PID為3016的進(jìn)程沒有被禁止任務(wù)2進(jìn)程管理
知識(shí)鏈接:kill命令。kill就是用來結(jié)束進(jìn)程的命令。它可以通過PID或進(jìn)程名來識(shí)別要結(jié)束的進(jìn)程,也可以根據(jù)不同的信號(hào)完成不同的操作。kill命令的格式如下。kill[選項(xiàng)]PID常用選項(xiàng)如下。
-s<SIGNAL>:指定結(jié)束進(jìn)程的信號(hào)類型。常見的信號(hào)包括SIGTERM(默認(rèn),優(yōu)雅地中斷進(jìn)程)、SIGKILL(強(qiáng)制中斷進(jìn)程)等。
-l:列出可用的信號(hào)類型。kill命令只用于“發(fā)送”一個(gè)信號(hào),只有當(dāng)信號(hào)被程序成功“捕獲”時(shí),系統(tǒng)才會(huì)執(zhí)行kill命令指定的操作;反之,如果信號(hào)被“封鎖”或者“忽略”,則kill命令會(huì)失效。任務(wù)2進(jìn)程管理步驟2:結(jié)束進(jìn)程。1.通過PID結(jié)束進(jìn)程(2)使用如下命令,強(qiáng)制結(jié)束進(jìn)程并查看結(jié)果,如圖7-12所示,發(fā)現(xiàn)進(jìn)程已被強(qiáng)制結(jié)束。kill-93016pstree-p
圖7-12強(qiáng)制結(jié)束進(jìn)程并查看結(jié)果任務(wù)2進(jìn)程管理
知識(shí)鏈接:進(jìn)程信號(hào)。進(jìn)程的管理主要是指進(jìn)程的關(guān)閉與重啟。我們一般關(guān)閉或重啟軟件,都是關(guān)閉或重啟它的程序,而不是直接操作進(jìn)程的。進(jìn)程之間是可以相互控制的,如果想直接通過進(jìn)程管理來關(guān)閉或重啟某個(gè)軟件,則這時(shí)就要依賴進(jìn)程信號(hào)(Signal)了。其實(shí)就是通過給予進(jìn)程一個(gè)信號(hào),告知該進(jìn)程你想要它做什么。常見的進(jìn)程信號(hào)如表7-6所示。通常記住“1”“9”“15”這3個(gè)號(hào)碼的意義即可。任務(wù)2進(jìn)程管理
知識(shí)鏈接:任務(wù)2進(jìn)程管理表7-6常見的進(jìn)程信號(hào)代號(hào)信號(hào)名稱說明1SIGHUP該信號(hào)讓進(jìn)程立即關(guān)閉,并在重新讀取配置文件之后重啟2SIGINT程序中斷信號(hào),用于中斷前臺(tái)進(jìn)程。相當(dāng)于按快捷鍵“Ctrl+C”8SIGFPE在發(fā)生致命的算術(shù)運(yùn)算錯(cuò)誤時(shí)發(fā)出。不僅包括浮點(diǎn)運(yùn)算錯(cuò)誤,還包括溢出及除數(shù)為0等其他所有的算術(shù)運(yùn)算錯(cuò)誤9SIGKILL用來立即關(guān)閉程序的運(yùn)行。本信號(hào)不能被阻塞、處理和忽略。一般用于強(qiáng)制中斷進(jìn)程14SIGALRM時(shí)鐘定時(shí)信號(hào),計(jì)算的是實(shí)際的時(shí)間或時(shí)鐘時(shí)間。alarm函數(shù)使用該信號(hào)15SIGTERM正常關(guān)閉進(jìn)程的信號(hào),kill命令的默認(rèn)信號(hào)。如果進(jìn)程已經(jīng)出現(xiàn)了問題,那么這個(gè)信號(hào)是無法正常中斷進(jìn)程的,這時(shí)我們才會(huì)嘗試SIGKILL信號(hào),也就是信號(hào)918SIGCONT該信號(hào)可以讓暫停的進(jìn)程恢復(fù)執(zhí)行。本信號(hào)不能被阻斷19SIGSTOP該信號(hào)可以暫停前臺(tái)進(jìn)程,相當(dāng)于按快捷鍵“Ctrl+Z”。本信號(hào)不能被阻斷步驟2:結(jié)束進(jìn)程。2.通過進(jìn)程名結(jié)束進(jìn)程(1)結(jié)束httpd進(jìn)程之前使用如下命令查看進(jìn)程httpd情況,如圖7-13所示。psaux|grep"httpd"|grep-v"grep"
圖7-13查看進(jìn)程httpd情況(2)使用如下命令結(jié)束所有進(jìn)程名為httpd的進(jìn)程,并查看結(jié)果,發(fā)現(xiàn)進(jìn)程已結(jié)束,如圖7-14所示。killallhttpdpsaux|grep"httpd"|grep-v"grep"
圖7-14進(jìn)程名為httpd的進(jìn)程已結(jié)束任務(wù)2進(jìn)程管理經(jīng)驗(yàn)分享:grep命令。使用grep命令查看httpd會(huì)生成包含“httpd”關(guān)鍵字的進(jìn)程,所以使用-v選項(xiàng)反向選擇包含“grep”關(guān)鍵字的進(jìn)程。任務(wù)2進(jìn)程管理
知識(shí)鏈接:killall命令。killall命令用于結(jié)束與給定名稱相匹配的所有進(jìn)程。它根據(jù)進(jìn)程名而不是PID來結(jié)束進(jìn)程。killall命令的格式如下。killall[選項(xiàng)][信號(hào)]進(jìn)程名常用選項(xiàng)如下。
i:交互式,詢問是否要終止某個(gè)進(jìn)程。
I:列出可用的信號(hào)類型。任務(wù)2進(jìn)程管理步驟2:結(jié)束進(jìn)程。3.結(jié)束交互式進(jìn)程使用如下命令結(jié)束交互式進(jìn)程firewalld,如圖7-15所示,出現(xiàn)詢問信息,輸入“y”,即可結(jié)束進(jìn)程。killall–ifirewalld
圖7-15結(jié)束交互式進(jìn)程任務(wù)2進(jìn)程管理步驟2:結(jié)束進(jìn)程。4.結(jié)束用戶(1)使用如下命令查看本機(jī)已經(jīng)登錄的用戶,如圖7-16所示。目前有3個(gè)用戶,其中使用w命令的是當(dāng)前用戶。W圖7-16查看本機(jī)已經(jīng)登錄的用戶(2)使用如下命令踢出其他用戶,如圖7-17所示。pkill-9–tpts/1
圖7-17踢出其他用戶任務(wù)2進(jìn)程管理
知識(shí)鏈接:pkill命令。pkill命令和killall命令的用法相同,都是通過進(jìn)程名或其他條件結(jié)束進(jìn)程的。pkill命令的格式如下。pkill[選項(xiàng)]進(jìn)程名常用選項(xiàng)如下。
-f:指定根據(jù)完整的命令行參數(shù)匹配進(jìn)程名,而非僅匹配進(jìn)程名部分。
-u<用戶名>:指定根據(jù)用戶名匹配進(jìn)程。
-g<進(jìn)程組>:指定根據(jù)進(jìn)程組ID匹配進(jìn)程。
-t<終端號(hào)>:指定根據(jù)終端號(hào)匹配進(jìn)程。任務(wù)2進(jìn)程管理步驟3:重啟進(jìn)程。使用如下命令讓父進(jìn)程httpd(1191)重啟,并查看結(jié)果,如圖7-18所示。重啟后,父進(jìn)程httpd(1191)沒有變化,但子進(jìn)程httpd的PID都更換了,說明父進(jìn)程httpd(1191)已經(jīng)重啟了。kill-11191pstree–p
圖7-18重啟父進(jìn)程httpd(1191)任務(wù)2進(jìn)程管理步驟4:調(diào)整進(jìn)程的優(yōu)先級(jí)。(1)使用如下命令先查看firewalld進(jìn)程的優(yōu)先級(jí),當(dāng)前優(yōu)先級(jí)為0;再修改firewalld進(jìn)程的優(yōu)先級(jí),將其優(yōu)先級(jí)提升5,提升后為-5,如圖7-19所示。ps-le|grep"firewalld"|grep-vgrepnice-n-5firewalld
圖7-19調(diào)整firewalld進(jìn)程的優(yōu)先級(jí)任務(wù)2進(jìn)程管理
知識(shí)鏈接:1.進(jìn)程的優(yōu)先級(jí)進(jìn)程的運(yùn)行是在CPU上執(zhí)行的,每次只能執(zhí)行CPU的一個(gè)時(shí)間片,會(huì)有多個(gè)進(jìn)程在run_Queue運(yùn)行隊(duì)列上等待CPU的調(diào)度執(zhí)行。不同的進(jìn)程先在run_Queue中等待CPU資源,并在CPU中執(zhí)行,再回到run_Queue中繼續(xù)等待CPU資源,這樣進(jìn)程循環(huán)不斷地等待與執(zhí)行,就是進(jìn)程運(yùn)行的基本邏輯。進(jìn)程在運(yùn)行隊(duì)列中等待的過程,其本質(zhì)就是各個(gè)進(jìn)程在排隊(duì)的過程。在進(jìn)程排隊(duì)的過程中,衡量誰先領(lǐng)到CPU資源的標(biāo)準(zhǔn)是進(jìn)程的優(yōu)先級(jí)。優(yōu)先級(jí)高的進(jìn)程可以在運(yùn)行隊(duì)列排隊(duì)過程中“優(yōu)先”領(lǐng)到CPU資源;而優(yōu)先級(jí)低的進(jìn)程則會(huì)被“插隊(duì)”,相對(duì)靠后領(lǐng)到CPU資源。系統(tǒng)給予進(jìn)程一個(gè)優(yōu)先級(jí)(priority,PRI),這個(gè)PRI值越低越優(yōu)先。不過RPI值是由內(nèi)核動(dòng)態(tài)調(diào)整的,用戶無法直接調(diào)整PRI值。如果要調(diào)整進(jìn)程的優(yōu)先級(jí),就要通過另一個(gè)優(yōu)先級(jí)參數(shù)nice(NI)值,間接調(diào)整優(yōu)先級(jí)。一般來說PRI值與nice值的關(guān)系如下。任務(wù)2進(jìn)程管理
知識(shí)鏈接:PRI(new)=PRI(old)+nice通過修改nice值可改變進(jìn)程的優(yōu)先級(jí)。降低nice值,進(jìn)程的PRI值就會(huì)降低,該進(jìn)程就越優(yōu)先被CPU處理;反之,增加nice值,進(jìn)程的PRI值就會(huì)增加,該進(jìn)程就越靠后被CPU處理。需要注意的是,原來的PRI值是40,并不是我們給予一個(gè)值為4的nice,PRI值就會(huì)變?yōu)?4。因?yàn)镻RI值是由系統(tǒng)動(dòng)態(tài)決定的,nice值可以影響PRI值,但PRI最終數(shù)值還是由系統(tǒng)決定的。在調(diào)整nice值時(shí)有如下注意事項(xiàng)。(1)nice值范圍是-20~19。(2)普通用戶調(diào)整nice值的范圍是0~19,并且只能調(diào)整自己的進(jìn)程。(3)普通用戶只能調(diào)高nice值,而不能降低nice值。如原本nice值為0,則只能調(diào)整其為大于0的值。(4)只有root用戶才能將進(jìn)程nice值調(diào)整為負(fù)值,并且可以調(diào)整任何用戶的進(jìn)程。任務(wù)2進(jìn)程管理
知識(shí)鏈接:2.修改優(yōu)先級(jí)的命令給予某個(gè)進(jìn)程nice值的方式有如下兩種。(1)一開始執(zhí)行進(jìn)程就立即給定nice值,使用nice命令,其格式如下。nice[選項(xiàng)]命令常用選項(xiàng)如下。-n:NI值,給命令賦予NI值(2)調(diào)整某個(gè)已經(jīng)存在的PID的nice值,使用renice命令,其格式如下。renice[優(yōu)先級(jí)]PID任務(wù)2進(jìn)程管理步驟4:調(diào)整進(jìn)程的優(yōu)先級(jí)。(2)使用如下命令將已存在的、PID為3096進(jìn)程的NI值修改為-10,并查看修改后的進(jìn)程優(yōu)先級(jí),如圖7-20所示。renice-103096ps-le|grep"firewalld"|grep-vgrep
圖7-20查看修改后的進(jìn)程優(yōu)先級(jí)任務(wù)2進(jìn)程管理任務(wù)3
服務(wù)管理任務(wù)3服務(wù)管理開啟與關(guān)閉服務(wù)查看服務(wù)狀態(tài)開啟服務(wù)自啟動(dòng)任務(wù)流程管理系統(tǒng)單元組步驟1:開啟與關(guān)閉服務(wù)。(1)使用如下命令開啟防火墻服務(wù)并查看結(jié)果,如圖7-21所示。systemctlstartfirewalldpstree任務(wù)3服務(wù)管理
知識(shí)鏈接:服務(wù)管理。麒麟操作系統(tǒng)中的服務(wù)類似于Linux操作系統(tǒng)中的服務(wù),Linux服務(wù)按照安裝方法的不同可以分為RPM包默認(rèn)安裝的服務(wù)和源碼包安裝的服務(wù)兩大類。其中,RPM包默認(rèn)安裝的服務(wù)又因?yàn)閱?dòng)與自啟動(dòng)管理方法的不同分為獨(dú)立的服務(wù)和基于xinetd的服務(wù)。服務(wù)分類的關(guān)系圖如圖7-22所示。
圖7-21開啟防火墻服務(wù)并查看結(jié)果任務(wù)3服務(wù)管理
知識(shí)鏈接:任務(wù)3服務(wù)管理圖7-22服務(wù)分類的關(guān)系圖
知識(shí)鏈接:1.RPM包默認(rèn)安裝的服務(wù)這些服務(wù)是通過RPM包安裝的,可以被服務(wù)管理命令識(shí)別。這些服務(wù)又可以分為兩種。(1)獨(dú)立的服務(wù):就是獨(dú)立啟動(dòng)的意思,這種服務(wù)可以自行啟動(dòng),而不用依賴其他的管理服務(wù)。因?yàn)椴灰蕾嚻渌墓芾矸?wù),所以當(dāng)客戶端請(qǐng)求訪問時(shí),獨(dú)立的服務(wù)響應(yīng)請(qǐng)求速度更快。目前,Linux操作系統(tǒng)中的大多數(shù)服務(wù)都是獨(dú)立的服務(wù),如Apache服務(wù)、FTP服務(wù)、Samba服務(wù)等。(2)基于xinetd的服務(wù):這種服務(wù)就不能獨(dú)立啟動(dòng)了,而要依靠管理服務(wù)來調(diào)用。這個(gè)負(fù)責(zé)管理的服務(wù)就是xinetd服務(wù)。xinetd服務(wù)是系統(tǒng)的超級(jí)守護(hù)進(jìn)程,其作用就是管理不能獨(dú)立啟動(dòng)的服務(wù)。當(dāng)有客戶端請(qǐng)求時(shí),先請(qǐng)求xinetd服務(wù),由xinetd服務(wù)去喚醒相對(duì)應(yīng)的服務(wù)。當(dāng)客戶端請(qǐng)求結(jié)束后,被喚醒的服務(wù)會(huì)關(guān)閉并釋放資源。這樣做的好處是只需要持續(xù)啟動(dòng)xinetd服務(wù),而其他基于xinetd的服務(wù)只有在需要時(shí)才被啟動(dòng),不會(huì)占用過多的服務(wù)器資源。但是這種服務(wù)由于在有客戶端請(qǐng)求時(shí)才會(huì)被啟動(dòng),因此響應(yīng)時(shí)間相對(duì)較長。任務(wù)3服務(wù)管理
知識(shí)鏈接:2.源碼包安裝的服務(wù)這些服務(wù)是通過源碼包安裝的,所以安裝位置都是手工指定的。由于不能被系統(tǒng)中的服務(wù)管理命令直接識(shí)別,因此這些服務(wù)的啟動(dòng)與自啟動(dòng)方法一般都是源碼包設(shè)計(jì)好的。每個(gè)源碼包的啟動(dòng)腳本都不一樣,一般需要查看說明文檔才能確定。源碼包是開源的,自定義性強(qiáng),通過編譯安裝更加適合系統(tǒng),但是安裝速度較慢,編譯時(shí)容易報(bào)錯(cuò)。RPM包是經(jīng)過編譯的軟件包,安裝更快速,不容易報(bào)錯(cuò),但不是開源的。其實(shí)不管是RPM包,還是源碼包,只不過是初始安裝方式不一樣而已,如果已經(jīng)在Linux操作系統(tǒng)上安裝完成,那么啟動(dòng)服務(wù)都是可以通過“/絕對(duì)路徑/啟動(dòng)腳本名start”方式啟動(dòng)的。任務(wù)3服務(wù)管理步驟1:開啟與關(guān)閉服務(wù)。(2)使用如下命令關(guān)閉防火墻服務(wù)并查看結(jié)果,如圖7-23所示。systemctlstopfirewalldpstree
圖7-23關(guān)閉防火墻服務(wù)并查看結(jié)果任務(wù)3服務(wù)管理
知識(shí)鏈接:systemctl命令。在麒麟操作系統(tǒng)中,服務(wù)管理命令為systemctl。該命令功能強(qiáng)大,管理方便,但也導(dǎo)致了systemctl體系龐大、非常復(fù)雜。啟動(dòng)單元、自啟動(dòng)單元、查看單元狀態(tài)、切換系統(tǒng)單元組都是使用systemctl命令完成的。systemctl命令的格式如下。systemctl[選項(xiàng)]單元名啟動(dòng)單元的常用選項(xiàng)如下。
start:?jiǎn)?dòng)單元。
stop:停止單元。
restart:重啟動(dòng)單元。
reload:平滑重啟。就是在不關(guān)閉單元的情況下,重新加載配置文件,讓配置文件生效。、任務(wù)3服務(wù)管理
知識(shí)鏈接:systemctl命令。自啟動(dòng)單元的常用選項(xiàng)如下。
enable:設(shè)置單元為開機(jī)自啟動(dòng)。
disable:設(shè)置單元為禁止開機(jī)自啟動(dòng)。查看單元狀態(tài)的常用選項(xiàng)如下。
status:查看單元狀態(tài),可以看到啟動(dòng)與自啟動(dòng)狀態(tài)。
is-active:查看單元是否啟動(dòng)。
is-enabled:查看單元是否自啟動(dòng)。任務(wù)3服務(wù)管理步驟2:查看服務(wù)狀態(tài)。使用如下命令查看防火墻服務(wù)的狀態(tài),輸出結(jié)果如圖7-24所示。systemctlstatusfirewalld
圖7-24查看防火墻服務(wù)的狀態(tài)輸出結(jié)果的第二行“Loaded:loaded(/usr/lib/systemd/system/firewalld.service;disabled;vendorpreset:enabled)”顯示的是服務(wù)的自啟動(dòng)狀態(tài)。其中,“/usr/lib/systemd/system/firewalld.service;disabled;”是指當(dāng)前服務(wù)的自啟動(dòng)狀態(tài),這里的“disabled”是指服務(wù)開機(jī)不自啟動(dòng);“vendorpreset:enabled”是指廠商預(yù)設(shè)值,并不干擾服務(wù)的正常狀態(tài)。任務(wù)3服務(wù)管理
知識(shí)鏈接:服務(wù)的自啟動(dòng)狀態(tài)。服務(wù)的自啟動(dòng)狀態(tài)主要有以下幾種。
enabled:自啟動(dòng),也就是服務(wù)在開機(jī)時(shí)會(huì)自動(dòng)啟動(dòng)。
disabled:禁止自啟動(dòng),也就是服務(wù)在開機(jī)時(shí)不會(huì)自動(dòng)啟動(dòng)。
static:靜態(tài)狀態(tài),也就是服務(wù)在開機(jī)時(shí)不會(huì)自動(dòng)啟動(dòng),但是可以被其他服務(wù)喚醒,類似于Windows服務(wù)中的手動(dòng)狀態(tài)。只有在服務(wù)的配置文件中沒有定義[Install]區(qū)域時(shí),服務(wù)才可以處于static狀態(tài)。
mask:強(qiáng)制注銷服務(wù),處于這種狀態(tài)下的服務(wù)無法啟動(dòng),除非使用“systemctlunmask服務(wù)名”命令取消注銷狀態(tài)才能啟動(dòng)。第三行“Active:active(running)sinceMon2022-11-2113:08:04CST;8minago”顯示的是單元的啟動(dòng)狀態(tài),這里的“active(running)”表示單元已經(jīng)啟動(dòng)。任務(wù)3服務(wù)管理
知識(shí)鏈接:服務(wù)的啟動(dòng)狀態(tài)。服務(wù)的啟動(dòng)狀態(tài)主要有以下幾種。
active(running):?jiǎn)卧谶\(yùn)行。常見的單元啟動(dòng)狀態(tài)就是這種狀態(tài)。
active(exited):僅能執(zhí)行一次就結(jié)束的單元。不需要常駐內(nèi)存中的單元一般處于這種狀態(tài)。
active(waiting):正在等待運(yùn)行的單元,需要等其他單元結(jié)束才能繼續(xù)運(yùn)行。打印隊(duì)列單
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆重慶市銅梁中學(xué)高三下學(xué)期聯(lián)考語文試題含解析
- 《防火防爆安全培訓(xùn)》課件
- 2025屆湖北省孝感市八校高考語文一模試卷含解析
- 河南省平頂山市2025屆高三第三次模擬考試數(shù)學(xué)試卷含解析
- 現(xiàn)代學(xué)徒制課題:基于中國特色學(xué)徒制的中高本一體化課程體系研究(附:研究思路模板、可修改技術(shù)路線圖)
- 2025屆湖北省仙桃市漢江高級(jí)中學(xué)高考語文倒計(jì)時(shí)模擬卷含解析
- 浙江省溫州市永嘉縣翔宇中學(xué)2025屆高三第二次調(diào)研語文試卷含解析
- 浙江省溫州市普通高中2025屆高考數(shù)學(xué)全真模擬密押卷含解析
- 2025屆江蘇省淮安市田家炳中學(xué)高三第二次聯(lián)考英語試卷含解析
- 內(nèi)蒙古包頭六中2025屆高考適應(yīng)性考試數(shù)學(xué)試卷含解析
- SK海力士半導(dǎo)體(中國)有限公司12英寸集成電路生產(chǎn)線五期技術(shù)升級(jí)項(xiàng)目環(huán)評(píng)報(bào)告
- 官渡之戰(zhàn)課件
- QQ與微信用戶數(shù)量、啟動(dòng)次數(shù)及使用時(shí)長對(duì)比分析報(bào)告
- 春節(jié)序曲簡(jiǎn)譜
- jdy-24m中文手冊(cè)-超級(jí)藍(lán)牙模塊
- 《工程數(shù)學(xué)(本)》期末試題及答案
- GB/T 41518-2022頁巖氣勘探開發(fā)油基巖屑處理方法及控制指標(biāo)
- GB/T 3836.7-2017爆炸性環(huán)境第7部分:由充砂型“q”保護(hù)的設(shè)備
- 連接器基礎(chǔ)及測(cè)量標(biāo)準(zhǔn)
- GB/T 28602-2012磷酸(熱法)生產(chǎn)技術(shù)規(guī)范
- 抱抱“暴暴”應(yīng)對(duì)負(fù)面情緒 課件 高中心理健康
評(píng)論
0/150
提交評(píng)論