第6章 linux運行級別與進程管理_第1頁
第6章 linux運行級別與進程管理_第2頁
第6章 linux運行級別與進程管理_第3頁
第6章 linux運行級別與進程管理_第4頁
第6章 linux運行級別與進程管理_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第6章Linux運行級別與進程管理,本章介紹了Linux的運行級別及其控制文件,Linux的進程管理和任務調(diào)度方法,以及Linux系統(tǒng)日志管理問題。 學完本章后將能夠:控制和管理Linux的運行級別描述Linux進程的基本概念在圖形界面和命令行界面下管理進程在命令行界面下進行任務調(diào)度管理系統(tǒng)日志,6.1Linux的運行級別6.2進程和作業(yè)6.3Linux的進程管理6.4任務調(diào)度6.5系統(tǒng)日志管理,6.1.1Linux的啟動過程,Linux的啟動過程由以下幾個階段組成:執(zhí)行GRUB或LILO引導裝載程序加載Linux內(nèi)核執(zhí)行/sbin/init讀取并執(zhí)行/etc/inittab執(zhí)行/etc/rc.d/rc.local腳本程序執(zhí)行/bin/login登錄程序,6.1.2 Linux的運行級別,1/etc/inittab文件 Linux系統(tǒng)的運行級別可以理解為當用戶登錄時,系統(tǒng)為用戶提供何種服務,它取決于/etc/inittab配置文件的內(nèi)容。inittab文件是init進程的配置文件,用于指定系統(tǒng)啟動時和正常運行時將要運行哪些腳本和服務。 /etc/inittab文件中每一配置命令行由 id、runlevels、action、command四個字段依次構(gòu)成,各字段間用冒號分隔,共同確定某個進程在哪些運行級別以何種方式運行。,2設置Linux的運行級別運行級別說明0 關(guān)機(halt)1 進入單用戶模式2 多用戶模式,無網(wǎng)絡支持3 完全的多用戶模式,有網(wǎng)絡支持,文本界面4 未使用,為保留的運行級別5 完全的多用戶模式,有網(wǎng)絡支持和X11圖形接口6 重啟系統(tǒng) 一般系統(tǒng)默認的運行級別為3或5。系統(tǒng)管理員可以通過修改/etc/inittab文件內(nèi)容來重新指定系統(tǒng)的默認運行級別,但應避免設為0或6,因為這兩個執(zhí)行模式會在開機后直接關(guān)機或重啟。若要修改運行級別,只需要在此文件中找出一行: id:3:initdefault: 其中的數(shù)字3表示目前系統(tǒng)默認的運行級別為3,將此數(shù)字修改為0-6之間的其他數(shù)字應改變了系統(tǒng)的運行級別,如改為5,系統(tǒng)將以圖形界面登錄,并提供多用戶和網(wǎng)絡支持。,在系統(tǒng)運行過程中,可以使用下列格式的命令使系統(tǒng)進入指定的運行級別:rootrhel6 # /sbin/init runlevel為指定的運行級別,取值為06。例如,以下命令將使系統(tǒng)進入運行級別5。rootrhel6 # /sbin/init 5而下列命令將使系統(tǒng)重新啟動:rootrhel6 # /sbin/init 6設置或修改了系統(tǒng)的運行級別后,可以通過以下命令來查看設置的結(jié)果:rootrhel4 #/sbin/runlevel 5 3其中,“5”表示修改前的運行級別,“3”表示當前的運行級別。,6.1Linux的運行級別6.2進程和作業(yè)6.3Linux的進程管理6.4任務調(diào)度6.5系統(tǒng)日志管理,6.2.1 進程,Linux是一個多用戶、多任務的操作系統(tǒng),在同一時間允許有許多用戶向操作系統(tǒng)發(fā)出各種操作命令。每當運行一個命令時,系統(tǒng)就會同時啟動一個進程。 進程(Processes)是指具有獨立功能的程序的一次運行過程,也是系統(tǒng)資源分配和調(diào)度的基本單位。 Linux系統(tǒng)在剛剛啟動時,運行于內(nèi)核方式,此時只有一個初始化進程在運行,該進程首先對系統(tǒng)進行初始化,然后執(zhí)行初始化程序(即/sbin/init)初始化進程是系統(tǒng)的第一個進程,以后的所有進程都是初始化進程的子進程。,2進程的狀態(tài) 為了充分利用系統(tǒng)資源,Linux系統(tǒng)將進程分為以下幾種狀態(tài):運行狀態(tài):進程正在使用CPU運行的狀態(tài)。處于運行態(tài)的進程又稱為當前進程(current process)。就緒狀態(tài):進程已獲得除CPU外運行所需的全部資源,一旦系統(tǒng)把CPU分配給它之后即可投入運行。等待狀態(tài):又稱睡眠狀態(tài),進程正在等待某個事件或某個資源。暫停狀態(tài):又稱掛起狀態(tài),進程需要接受某種特殊處理而暫時停止運行。休眠狀態(tài):進程主動暫時停止運行。僵死狀態(tài):進程的運行已經(jīng)結(jié)束,但它的控制信息仍在系統(tǒng)中。終止狀態(tài):進程已經(jīng)結(jié)束,系統(tǒng)正在回收資源。,3進程的類型 Linux系統(tǒng)的進程大體可分為交互進程、批處理進程和守護進程三種。交互進程:由shell通過執(zhí)行程序所產(chǎn)生的進程,可以工作在前后臺。批處理進程:不需要與終端相關(guān),是一個進程序列。守護進程:linux系統(tǒng)自動啟動,工作在后臺,用于監(jiān)視特定服務。,4進程的優(yōu)先級 在Linux 操作系統(tǒng)中,進程之間是竟爭資源(比如CPU和內(nèi)存的占用)的關(guān)系。linux內(nèi)核采用優(yōu)先數(shù)調(diào)度算法來為進程分配CPU。每個進程都有兩個優(yōu)先級值:靜態(tài)值和動態(tài)。我們通常討論的優(yōu)先級是指靜態(tài)優(yōu)先級,這是因為我們無法控制動態(tài)優(yōu)先級。 Linux中進程優(yōu)先級(niceness)的取值范圍是-2019之間的整數(shù),取值越高,優(yōu)先級越低,默認優(yōu)先級為0。啟動進程的普通用戶只能降低進程優(yōu)先級,超級用戶不但可以降低優(yōu)先級,也可以提高優(yōu)先級。,6.2.2 作業(yè),正在執(zhí)行的一個或多個相關(guān)進程被稱為作業(yè)。一個作業(yè)可以包含一個或多個進程,比如當使用了管道和重定向命令時,該作業(yè)就包含了多個進程。如: rootrhel6 # cat file | wc l 在這個命令中,作業(yè)“cat file|wc l”就同時啟動了兩個進程,它們分別是cat和wc。 作業(yè)可以分為兩類:前臺作業(yè)和后臺作業(yè)。前臺作業(yè)運行于前臺,與用戶進行交互操作;后臺作業(yè)運行于后臺,不直接與用戶交互,但可以輸出執(zhí)行結(jié)果。 在同一時刻,每個用戶只能有一個前臺作業(yè)。,6.2.3 進程的啟動,進程的啟動方式分為手工啟動和調(diào)度啟動兩種。1.手工啟動手工啟動即由用戶在Shell命令行下輸入要執(zhí)行的程序來啟動一個進程。手工啟動又可以分為前臺啟動和后臺啟動。用戶輸入Shell命令后直接按Enter,則啟動前臺進程;如果在輸入Shell命令后加上“&”符號再按回車則啟動后臺進程。2調(diào)度啟動調(diào)度啟動是指系統(tǒng)按照用戶的事先設置,在特定的時間或者周期性地執(zhí)行指定的進程。 Linux中可以實現(xiàn)at調(diào)度、batch調(diào)度和cron調(diào)度。,6.1Linux的運行級別6.2進程和作業(yè)6.3Linux的進程管理6.4任務調(diào)度6.5系統(tǒng)日志管理,6.3.1 命令行方式下的進程管理,1查看系統(tǒng)的進程Linux系統(tǒng)中每個運行著的程序都是系統(tǒng)中的一個進程要查看系統(tǒng)當前的進程及其執(zhí)行的狀態(tài),可以使用ps和top命令來實現(xiàn)。(1)ps命令格式:ps 選項功能:顯示系統(tǒng)中當前的進程及其狀態(tài)。常用選項: -a 顯示終端上所有用戶的進程。 -l 顯示進程的詳細信息,包括父進程號、登錄的終端號、進程優(yōu)先級等。 -u 以用戶的格式顯示進程的詳細信息,包括CPU、內(nèi)存的使用率等。 -x 顯示沒有控制臺的進程及后臺進程。,【例6-1】查看當前用戶在當前控制臺上啟動的進程。rootrhel6 # psPID TTY TIME CMD2135 tty1 00:00:00 bash3178 tty1 00:00:00 ps顯示信息分為4個字段,其中:PID:表示進程號,系統(tǒng)根據(jù)這個編號處理相應的進程TTY:表示登錄的終端號,桌面環(huán)境或遠程登錄的終端號表示為pts/n(n為終端編號,從0開始依次編號),字符界面的終端號表示為tty1tty6,沒有控制臺的進程顯示為“?”TIME:表示該進程消耗的CPU時間CMD:表示正在執(zhí)行的命令或者進程,【例6-2】查看當前控制臺上進程的詳細信息。rootrhel6 # psl 其主要輸出項說明如下:F:該進程狀態(tài)的標記S:進程狀態(tài)代碼。主要狀態(tài)有以下幾種:D:不可中斷的休眠狀態(tài),常用于設備I/OR:運行狀態(tài)S:休眠狀態(tài)T:終止狀態(tài)Z:僵死狀態(tài)W:進入內(nèi)存交換(從內(nèi)核2.6開始無效):高優(yōu)先級的進程N:低優(yōu)先級的進程UID:進程執(zhí)行者的ID號PPID:父進程的標識符PRI:進程執(zhí)行的動態(tài)優(yōu)先級NI:進程執(zhí)行的靜態(tài)優(yōu)先級SZ:進程占用內(nèi)存空間的大小,以KB為單位,【例6-3】查看系統(tǒng)中每位用戶的全部進程。rootrhel6 # psaux 該命令顯示系統(tǒng)中所有用戶執(zhí)行的進程,包括沒有控制臺的進程及后臺進程。主要輸出項說明:%CPU:CPU使用率百分比%MEM:內(nèi)存使用率百分比VSZ:占用的虛擬內(nèi)存大小RSS:占用的物理內(nèi)存大小STAT:進程的狀態(tài)START:進程的開始時間系統(tǒng)管理員常常配合grep命令的使用,以縮小查看的范圍: rootrhel6 # psauxgrep tom,(2) top命令 top命令與ps命令很相似,都是用來顯示目前系統(tǒng)正在執(zhí)行的進程。但與ps命令最大的不同是,top命令在執(zhí)行后會以指定的時間間隔來更新顯示的信息,因此top命令可以動態(tài)地監(jiān)控系統(tǒng)性能。在Shell命令行上直接輸入“top”命令,屏幕上會動態(tài)顯示系統(tǒng)中的進程信息,包括:已開機的時間、目前登錄的用戶數(shù)、系統(tǒng)目前存在的進程個數(shù),以及每個進程的詳細信息等。,2查看系統(tǒng)的作業(yè)可以使用jobs命令為查看系統(tǒng)當前的所有作業(yè)。格式:jobs 選項常用選項:-p 僅顯示進程號-l 同時顯示進程號和作業(yè)號【例6-3】顯示所有的作業(yè),同時顯示其進程號。rootrhel6 # jobs l1- 1468 stop cat A12+ 1788 stop vi A1 命令執(zhí)行的結(jié)果分別顯示作業(yè)號、進程號、工作狀態(tài)、作業(yè)產(chǎn)生的命令。,3. 作業(yè)的前后臺切換利用bg命令和fg命令可實現(xiàn)前臺作業(yè)和后臺作業(yè)之間的相互轉(zhuǎn)換。(1)bg命令格式:bg 作業(yè)號 功能:使用bg命令可以將掛起的前臺作業(yè)切換到后臺運行。若未指定作業(yè)號,則將掛起的作業(yè)隊列中的第一個作業(yè)切換到后臺。【例6-4】使用vi編輯file文件,然后使用【Ctrl+Z】組合鍵掛起vi進程,再切換到后臺。rootrhel6 # vi fileCtrl+Z1+ Stoppedrootrhel6 # bg 1 1+ vi file & 注意:將正在運行的前臺作業(yè)切換到后臺,功能上與在Shell命令結(jié)尾加上“”符號相似。,(2)fg命令格式:fg 作業(yè)號功能:使用fg命令可以把后臺作業(yè)調(diào)入前臺運行?!纠?-5】將例6-4中作業(yè)號為1的作業(yè)切換到前臺繼續(xù)執(zhí)行。rootrhel6 # fg 1,4設置進程的優(yōu)先級(1)nice命令格式: nice -優(yōu)先級數(shù)值 命令功能:用指定的優(yōu)先級來啟動指定進程。一般進程執(zhí)行時的優(yōu)先等級范圍為-2019,其中-20表示最高等級,而19的等級最低。優(yōu)先級-1-20的等級只有管理員可以設置,若是進程執(zhí)行時沒有使用nice命令,則默認的優(yōu)先級等級為0;如果使用nice命令,而沒有指定優(yōu)先級值,則默認的優(yōu)先等級為10。,【例6-6】以下通過6個不同優(yōu)先等級的命令來說明nice命令的使用方法。rootrhel6 # vi & /以優(yōu)先等級0在后臺執(zhí)行vi程序rootrhel6 # nice vi & /以優(yōu)先等級10在后臺執(zhí)行vi程序rootrhel6 # nice -50 vi & /以優(yōu)先等級19在后臺執(zhí)行vi程序 rootrhel6 # nice -18 vi & /以優(yōu)先等級18在后臺執(zhí)行vi程序 rootrhel6 # nice -18 vi & /以優(yōu)先等級-18在后臺執(zhí)行vi程序 rootrhel6 # nice -50 vi & /以優(yōu)先等級-20在后臺執(zhí)行vi程序可以使用ps命令來驗證上述命令使用的正確性。rootrhel6 # ps -l,(2)renice命令格式:renice 優(yōu)先級數(shù)值 參數(shù)功能:修改正在運行的進程的優(yōu)先等級,設定指定用戶或組的進程優(yōu)先級。常用參數(shù):-p進程號修改指定進程的優(yōu)先級,“-p”可以缺省-u 用戶名修改指定用戶所啟動進程的默認優(yōu)先級-g組ID號 修改指定組中所有用戶所啟動進程的默認優(yōu)先級【例6-7】將PID為2564的進程變更等級為“-15”。 rootrhel6 # renice -15 2564【例6-8】將student用戶組的進程優(yōu)先級修改為“-6”。 rootrhel6 # renice -6 -g student,5終止進程(1)kill命令格式:kill 信號代碼 PID功能:向指定PID的進程發(fā)送終止運行的信號,進程在收到信號后,會自動結(jié)束本進程,并處理好結(jié)束前的相關(guān)事務。缺省信號代碼時會直接終止進程。超級用戶可終止所有的進程,普通用戶只能終止自己啟動的進程。 主要信號代碼說明:-9 發(fā)送“SIGKILL”信號。當無選項的kill命令不能終止進程時,可強制終止指定進程。-15發(fā)送“SIGTERM”信號。一般在使用-9選項無效的情況下使用。,例如,要查看xinetd進程對應的進程號,則實現(xiàn)命令為rootrhel6 # ps aux|grep xinetdroot 5017 0.0 0.3 3052 840 ? Ss 18:33 0:00 xinetdroot 5028 0.0 0.2 5100 656 tty3 R+ 18:40 0:00 grep xinetd從其輸出信息中,可知該進程的進程號為5017。若要強制終止該進程,則可執(zhí)行下列命令:rootrhel6 # kill -9 5017,(2)killall命令格式:killall 信號代碼 進程名功能:使用進程名來結(jié)束指定進程的運行。若系統(tǒng)存在同名的多個進程,則這些進程將全部結(jié)束運行該命令使用的信號代碼與kill命令相同。例如,要結(jié)束系統(tǒng)中所有的vi進程,則可執(zhí)行下列命令:rootrhel6 # killall -9 vi,6.3.2圖形界面下的進程管理,1查看進程信息 在桌面環(huán)境下依次選擇“應用程序”|“系統(tǒng)工具”|“系統(tǒng)監(jiān)視器”命令,打開“系統(tǒng)監(jiān)視器”窗口,2修改進程的優(yōu)先級 在“進程”選項卡中指定進程,再選擇“編輯”|“更改優(yōu)先級”命令,彈出“改變優(yōu)先級”對話框,3終止進程 在“進程列表”選項卡中選擇指定進程,再選擇“編輯”|“結(jié)束進程”命令,彈出“結(jié)束進程”對話框,6.1Linux的運行級別6.2進程和作業(yè)6.3Linux的進程管理6.4任務調(diào)度6.5系統(tǒng)日志管理,6.4.1 at調(diào)度,at調(diào)度用來在一個特定時間運行一個命令或腳本,這個命令或腳本只運行一次。其使用格式為:at 選項時間 主要選項說明: -f 文件名 -l 顯示等待執(zhí)行的調(diào)度作業(yè)。 -d 刪除指定的調(diào)度作業(yè)。,絕對時間表達法: 表達2011年5月1日下午5:30的時間 5:30pm 5/1/11 17:30 1.5.11 17:30 05012011 相對時間表達法: now+1 hour /表示從現(xiàn)在起1小時后 4:30pm+2 days /表示2天后的4:30pm,例6.10:設置at調(diào)度,要求在2015年12月31日23時59分向登錄在系統(tǒng)上的所有用戶發(fā)送Happy New Year信息。 rootlocalhost # at 23:59 12/31/2015 at who at wall Happy New Year! at job 1 at 2015-12-31 23:59,6.4.2 cron調(diào)度,at調(diào)度中指定的命令只能執(zhí)行一次。但在實際的系統(tǒng)管理中有些命令需要在指定的日期和時間重復執(zhí)行,即具有周期性執(zhí)行的特點,例如每天例行的數(shù)據(jù)備份工作。cron調(diào)度可以滿足這種需要。1.crond監(jiān)控進程 crond監(jiān)控進程又稱crond服務,它在系統(tǒng)啟動時自動啟動,并一直運行于后臺。crond進程每隔1分鐘時間就檢測一次crontab配置文件,并按照其設置內(nèi)容,定期重復執(zhí)行指定的cron調(diào)度工作。,2.crontab配置文件 crontab配置文件用于存放任務調(diào)度的時間和要啟動的進程等信息。crond進程維護著一個緩沖池(spool)目錄來保持crontab文件。 crontab文件包含6個字段:依次為分鐘、小時、日期、月份、星期和命令名稱,3.crontab命令 crontab命令的功能是管理用戶的crontab配置文件。格式:crontab 選項 常用選項: -e 創(chuàng)建、編輯配置文件 -l 顯示配置文件的內(nèi)容 -r 刪除配置文件,【例6-10】tom用戶設置cron調(diào)度,要求每周2,4,6早上5點將/home/tom/data目錄中的所有文件歸檔并壓縮為/backup目錄中的tom-data.tar.gz文件。 首先以tom賬號登錄系統(tǒng),然后進行如下設置:tomrhel6 tom$ crontab -e輸入“crontab e”命令后,系統(tǒng)自動啟動vi編輯器,用戶輸入以下配置內(nèi)容后,存盤退出:0 5 * * 2,4,6 tar -czf /backup/tom-data.tar.gz /home/tom/data觀察/var/spool/cron目錄,該目錄下會出現(xiàn)一個名為tom的文件,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論