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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論