




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第八講 Linux的進程管理目的、要求了解Linux進程類型、進程運行狀態(tài)以及常用的守護進程,掌握進程的監(jiān)視、控制和調(diào)度方法,重點掌握系統(tǒng)引導過程及相關引導配置文件的作用,以達到控制系統(tǒng)引導過程的目的。 Linux 進程簡述Linux 是一個多任務、多用戶網(wǎng)絡操作系統(tǒng),從操作系統(tǒng)的內(nèi)部結構看,一個任務(task)就是一個進程(Process)。Linux操作系統(tǒng)支持多個進程的并發(fā)運行,每個進程具有一定的功能和權限,它們都運行在各自獨立的虛擬地址空間。各種計算機資源(如文件、內(nèi)存、CPU等)的分配和管理都是以進程為基本單位。為了協(xié)調(diào)多個進程對這些共享資源的訪問,操作系統(tǒng)要跟蹤所有進程的活動和進程
2、使用系統(tǒng)資源的情況,從而實施對進程和資源的動態(tài)管理。什么是Linux進程 進程是在操作系統(tǒng)中執(zhí)行特定任務的動態(tài)實體 。程序是存儲在計算機磁盤上包含可執(zhí)行代碼和數(shù)據(jù)的靜態(tài)實體 。一個可執(zhí)行程序裝入Linux操作系統(tǒng)中運行時,它就形成了進程。Linux操作系統(tǒng)中每個運行中的程序至少由一個進程組成。每個進程相互獨立,一個用戶的應用程序不會干擾到其他用戶的程序或操作系統(tǒng)本身。Linux進程執(zhí)行模式分為用戶模式和內(nèi)核模式兩種。如果當前運行的是用戶程序、應用程序或者內(nèi)核之外的系統(tǒng)程序,那么對應進程就在用戶模式下運行;如果在用戶程序執(zhí)行過程中出現(xiàn)系統(tǒng)調(diào)用或者發(fā)生中斷事件,就要運行操作系統(tǒng)的核心程序,進程模式
3、就變?yōu)閮?nèi)核模式。在內(nèi)核模式運行的進程可以執(zhí)行機器的特權指令,而且該進程的運行不受用戶包括root用戶的干預。另外,Linux系統(tǒng)設定了每個用戶調(diào)用程序產(chǎn)生的進程的權限無法超越該用戶的權限,從而達到更高的系統(tǒng)安全性。Linux三種不同類型的進程 1. 交互進程在Linuxshell中啟動的進程,既可以在前臺運行,以可以在后臺運行,與終端有關。2. 批處理進程這種進程與終端沒有聯(lián)系,是一個進程的序列。3. 守護進程Linux引導過程中啟動的進程,在后臺運行,并隨時響應用戶的請求。Linux進程的四種運行狀態(tài) (1) 運行態(tài)(Running):僅有一個進程正在運行,處于運行態(tài)的進程獨占了CPU資源。
4、(2) 等待態(tài)(Sleeping):此時進程在等待一個事件的發(fā)生或某種系統(tǒng)資源(系統(tǒng)資源準備好后即轉(zhuǎn)入運行態(tài)),或者進程處于運行隊列中(處于隊列中的第一個進程即轉(zhuǎn)入運行態(tài))。(3) 停止態(tài)(Stopped):進程被停止,通常是接收一個進程終止信號。正在被調(diào)試的進程可能處于停止狀態(tài)。如kill 命令4. 僵死態(tài)(Zombie):由于某種原因被終止的進程,但是該進程的控制結構體仍然保留在內(nèi)在中。Linux守護進程 守護進程(Daemon)是指在后臺運行而沒有終端或登錄shell與之結合在一起的進程。守護進程經(jīng)常在系統(tǒng)啟動時開始運行,在系統(tǒng)結束時停止。Linux操作系統(tǒng)有許多標準的守護進程,其中,有
5、周期性運行來完成特定任務的crond進程和運行中等待并響應用戶請求的httpd、xinetd、cups等進程。 進程的四種啟動方法 . 引導啟動系統(tǒng)引導程序啟動init進程(是所有進程的父進程,進程號為),再根據(jù)運行級別Runlevel決定啟動其它進程。這些進程啟動腳本程序位于目錄/etc/rc.d/rcN.d下。其中N為Linux操作系統(tǒng)的運行級別,可分為06共七種,由配置文件/etc/inittab決定。Linux系統(tǒng)引導成功后,用戶可以輸入init命令切換到不同的運行級別,命令格式為:# init運行級別數(shù)其中:Runlevel 0:表示關機。Runlevel 1:表示單用戶模式,通常用
6、于系統(tǒng)維護。Runlevel 2:表示不支持網(wǎng)絡的多用戶模式。Runlevel 3:表示進入網(wǎng)絡多用戶文本界面操作環(huán)境。Runlevel 4:表示用戶定義模式,未定義情況下與相同。Runlevel 5:表示進入X window多用戶圖形界面操作環(huán)境。Runlevel 6:表示系統(tǒng)重啟。 2. 從shell中直接啟動任何具有程序執(zhí)行權限的用戶都可以使用這種方法啟動進程。根據(jù)用戶直接輸入命令來啟動進程的不同,可分為前臺和后臺啟動。前臺啟動是啟動進程最常用的方式,如輸入命令#ls l。當進程需要耗費很長時間時,可以使用后臺啟動進程方法,以便讓出控制臺給其他用戶。方法是在前臺啟動后加上“&”符號。輸入
7、后出現(xiàn)一個數(shù)字,這個數(shù)字就是該進程的編號(PID)。如在系統(tǒng)中查找httpd.conf文件的后臺進程的命令為。#find / -name httpd.conf &. 使用crond啟動進程crond守護進程將根據(jù)配置文件/etc/crontab和/var/spool/cron目錄,尋找以/etc/passwd文件中系統(tǒng)用戶名來命名的crontab文件,被找到的這個文件將載入內(nèi)存,定時、重復啟動配置文件設定的程序。如:系統(tǒng)要每天定時對用戶數(shù)據(jù)備份到一個固定的目錄下,就要用crond來完成。配置文件/etc/crontab由系統(tǒng)使用,而普通用戶則通過執(zhí)行命令$crontab完成自己配置工作。配置文
8、件的行格式為:分鐘 小時 每月中的某天 月份 每周中的某天 執(zhí)行的命令方法是用命令$crontab e 編輯任務列表如每小時35分執(zhí)行test用戶家目錄下的程序sum 的格式為:35 * * * * /home/test/sum每周的星期二每小時分執(zhí)行date命令的格式為:1 * * * 1 date另外,可以用命令$crontab l、$crontab r分別查詢和刪除所定制的任務。.執(zhí)行at命令啟動用at命令指定在規(guī)定的時間執(zhí)行一個指定的程序。at命令的語法格式如下:$ at 時間 (時:分月日年)然后繼續(xù)輸入需要執(zhí)行的命令,最后用Ctrl+D組合鍵結束設定。$ at 16:20 回車鍵u
9、pdatedb Ctrl+D另外,可以用命令atq、atrm分別查詢和刪除at定制的任務。查看進程信息 top指令的使用方法 #top命令能夠?qū)崟r顯示系統(tǒng)當前的進程及其狀態(tài)。 ps指令的使用方法ps 選項以下是ps命令常用的選項及其含義。-a:顯示系統(tǒng)中與tty相關的所有進程的信息。-e:顯示系統(tǒng)所有進程及執(zhí)行時間信息。-l:顯示每個進程的詳細信息。 r:顯示正在運行的進程。 u:列表進程中同時顯示用戶名。 x:顯示所有包括非登錄用戶的進程。如:ps aux|grep nfs進程的調(diào)度方法 進程的掛起與恢復使用組合鍵Ctrl+Z和命令$fg能夠完成對進程的掛起與恢復操作。組合鍵Ctrl+Z用于
10、掛起一個正在前臺運行的進程,并把一個前臺進程放置后臺運行,它與在命令行下用&符號啟動后臺進程是等價的。命令$fg用于將一個后臺運行的或被Ctrl+Z掛起的進程調(diào)到前臺運行。兩者的格式如下:$fg 作業(yè)號 用戶后臺所有進程可以用命令$job顯示其作業(yè)號。結束進程要結束一個前臺運行的程序或進程,通常使用Ctrl+C組合鍵。對于一個后臺或系統(tǒng)引導啟動的守護進程,無法使用Ctrl+C組合鍵來結束進程。命令# kill是專門用于終止進程的命令,它通過向進程發(fā)送指定的信息來結束進程。如果沒有指定發(fā)送信息,則默認為TERM的終止信號。命令的格式如下:$kill 選項信號進程號或$killall 守護進程名以
11、下是kill命令常用的選項及其含義。-s:指定需要送出的信號,既可以是信號名也可以是對應數(shù)字。-l:顯示所有64個信號名稱列表。-9:表示強制性終止進程。例如:# killall httpd /終止所有Apache進程# kill -9 2731/強制性終止2731號進程設定進程優(yōu)先級命令nice和renice 處于等待態(tài)(Sleeping)的進程是按照其優(yōu)先級來運行的,優(yōu)先級別高的進程將優(yōu)先獲得系統(tǒng)資源和被運行。nice命令可以設定程序以何優(yōu)先級別運行,而renice命令能動態(tài)調(diào)整進程的優(yōu)先級別。進程優(yōu)先級別(pri)取值范圍是-20至19。較小值代表較高的優(yōu)先級別。只有root用戶可以設定
12、負值的優(yōu)先級。普通用戶只能降低,不能提高自己進程的優(yōu)先級。所有用戶啟動進程的優(yōu)先級為0。例如:# nice -18 find / -name file1 /以-18的高優(yōu)先級別運行查找文件命令find。$ renice 15 1233 /用戶降低自己程序1233進程的優(yōu)先級別為15。Linux的啟動過程 了解Linux系統(tǒng)的引導過程對于掌握Linux系統(tǒng)至關重要。Linux的啟動過程大致分為:系統(tǒng)加電BIOSMBR(Master Boot Record)GRUBLinux映像內(nèi)核啟動RunlevelinitLogin的過程。其中:系統(tǒng)加電后BIOS讀取MBR的GRUB引導程序,讀取Linux映
13、像啟動系統(tǒng),并把控制權交給內(nèi)核,內(nèi)核執(zhí)行init初始化程序,根據(jù)文件/etc/inittab設定的Runlevel 運行級別N值,執(zhí)行位于目錄/etc/rc.d/rcN.d下的程序,系統(tǒng)啟動過程中還有很重要的一步就是根據(jù)文件系統(tǒng)配置文件/etc/fstab掛載相應的文件系統(tǒng),對該文件的不當設定會引起系統(tǒng)無法正常啟動。最后,系統(tǒng)執(zhí)行/etc/rc.local文件并提供用戶登錄界面,進而完成系統(tǒng)的啟動工作。用戶登錄成功后執(zhí)行/etc/profile、/etc/bashrc和位于目錄/etc/profile.d下的所有文件來設定共同的用戶環(huán)境,之后再單獨執(zhí)行用戶家目錄下的.bash_profile和
14、.bashrc文件來設定登錄用戶的個性用戶環(huán)境。/etc/issue為用戶登錄前顯示內(nèi)容的文件。幾個重要的引導配置文件 /boot/grub.conf文件此文件是開源GRUB引導程序的配置文件,可以配置實現(xiàn)多操作系統(tǒng)的引導,格式如下:default=1timeout=10splashimage=(hd0,9)/boot/grub/splash.xpm.gzfontfile=(hd0,9)/boot/grub/fontstitle Red Hat Enterprise Linux AS/64 (2.6.9-11.EL) root (hd0,8) kernel /boot/vmlinuz-2.6.
15、9-11.EL ro root=LABEL=/123 rhgb quiet initrd /boot/initrd-2.6.9-11.EL.imgtitle Windowsrootnoverify (hd0,0)chainloader +1/etc/inittab文件此文件是Linux系統(tǒng)運行級別的配置文件,可以用來配置系統(tǒng)啟動的運行級別。id:3:initdefault:ca:ctrlaltdel:/sbin/shutdown -t3 -r now/etc/fstab文件 此文件是Linux系統(tǒng)引導過程中自動掛載文件系統(tǒng)的配置文件。要實施用戶或組的磁盤配額限定也必須修改此文件,該文件的不當配
16、置會引起系統(tǒng)的無法引導。格式如下:LABEL=/ / ext3 defaults 1 1/dev/sda8 swap swap defaults 0 0第五字段1表示用#dump備份文件系統(tǒng),并通過/etc/dumpdates來指定備份的目標,0為不作備份。第六字段1表示檢查文件系統(tǒng)的順序。0為不檢查。/etc/rc.local文件 此文件是Linux系統(tǒng)引導過程中系統(tǒng)級環(huán)境設定的最后執(zhí)行文件,root用戶可以通過它定制系統(tǒng)運行環(huán)境,一般地,每行為一個執(zhí)行命令。格式如下:#!/bin/shtouch /var/lock/subsys/local/生成空文件chmod 666 /dev/snd/*/把/dev/snd/下所有文件權限改為任何人都可以讀寫insmod /root/dm9601-2.6/dm9601.ko/加載人工編譯好的USB網(wǎng)卡驅(qū)動程序,啟動USB網(wǎng)卡/etc/profile文件此文件是Linux系統(tǒng)引導過程中定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教改課題申報書地方
- 教育小課題立項申報書
- 電商課題申報書
- 南非施工合同范本
- 創(chuàng)業(yè)合伙協(xié)議合同范本
- 同城配送員工餐飲合同范本
- 申報書課題類別
- 旅游教改課題申報書
- 化工自提合同范本
- 合同內(nèi)歸屬權合同范本
- 圖解心經(jīng)心得整理分享PPT課件
- (完整版)學生課堂學習自我評價表
- 《英語專業(yè)畢業(yè)論文寫作指導》
- SAE-J400-2002-中文版
- Unit 1 How tall are you B Read and write(課堂PPT)
- 最新部編版九年級語文下冊 12《詞四首》課后習題參考答案
- 部編版四年級語文下冊27《巨人的花園》PPT課件(共2課時)
- 新人教版六年級下冊科學全冊教學設計教案
- 《成本會計學》習題集及答案
- 熒光綠送貨單樣本excel模板
- 科技館解說詞
評論
0/150
提交評論