Linux操作系統(tǒng)案例教程電子教案-第7章-進(jìn)程管理-技工學(xué)校使用_第1頁
Linux操作系統(tǒng)案例教程電子教案-第7章-進(jìn)程管理-技工學(xué)校使用_第2頁
Linux操作系統(tǒng)案例教程電子教案-第7章-進(jìn)程管理-技工學(xué)校使用_第3頁
Linux操作系統(tǒng)案例教程電子教案-第7章-進(jìn)程管理-技工學(xué)校使用_第4頁
Linux操作系統(tǒng)案例教程電子教案-第7章-進(jìn)程管理-技工學(xué)校使用_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第七章進(jìn)程管理7-1

進(jìn)程的基本概念1、進(jìn)程的定義是指一個具有獨(dú)立功能的程序的一次運(yùn)行過程,也是系統(tǒng)進(jìn)行資源分配和調(diào)度的基本單位。即每個程序模塊和它執(zhí)行時所處理的數(shù)據(jù)組成了進(jìn)程。父子進(jìn)程的關(guān)系1.一個進(jìn)程產(chǎn)生了另一個進(jìn)程。2父進(jìn)程終止,子進(jìn)程正常自然終止。子進(jìn)程未終止則會變成孤兒程指向INITTAB為父進(jìn)程3.子進(jìn)終止,父進(jìn)程不知,子進(jìn)程為僵尸進(jìn)程4.fork可創(chuàng)建子進(jìn)程,會復(fù)制父親進(jìn)程的數(shù)據(jù)和環(huán)境。5.進(jìn)程PID父進(jìn)程PPID2、進(jìn)程和程序的區(qū)別進(jìn)程是動態(tài)的,而程序是靜態(tài)的進(jìn)程是有生命的,而程序是永久的一個程序可以包含若干個進(jìn)程,沒有一一對應(yīng)的關(guān)系一個進(jìn)程可以包含若干個程序(例:pwd;date;find/-nameinittab)前臺進(jìn)程和后臺進(jìn)程前臺進(jìn)程指在命令行中輸入命令后,在未執(zhí)行完畢前,不能執(zhí)行其他進(jìn)程如查找Find/-nameininttab后臺進(jìn)程:在命令輸入時加入一個&,可以在后臺運(yùn)行。Find/-nameinit>/test/init.find&.3、進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換(1)進(jìn)程的基本狀態(tài)運(yùn)行態(tài)(running):在CPU上運(yùn)行就緒態(tài)(ready):獲得了CPU外的一切資源,可以隨時被CPU調(diào)用等待態(tài)(blocked):也叫等待態(tài),正在等待某一事件的發(fā)生4、進(jìn)程的類型交互進(jìn)程:由shell啟動,可以工作在前/后臺批處理進(jìn)程:不需要與終端相關(guān),提交在等待隊列的作業(yè)守護(hù)進(jìn)程:shell/linux系統(tǒng)自動啟動,工作在后臺,用于監(jiān)視特定服務(wù)5、進(jìn)程啟動方法進(jìn)程的啟動是由于執(zhí)行一個程序而啟動的,在RedHatLinux9.0系統(tǒng)中啟動進(jìn)程的方式有兩種:(1)手工啟動前臺:直接輸入程序名(如:#vi)后臺:程序名后加&(如:#vi&)(2)調(diào)度啟動系統(tǒng)在指定時間運(yùn)行指定的程序,可用at,batch和cron調(diào)度。利用VI手工啟動兩個進(jìn)程在后臺運(yùn)行;用VI編輯一個文件,并轉(zhuǎn)入到后臺運(yùn)行;把在后臺運(yùn)行中最前面的VI進(jìn)程調(diào)入到前臺運(yùn)行;殺死中間的一個VI進(jìn)程;一次性全部殺死所有的VI進(jìn)程;案例一7-2

進(jìn)程管理的常用命令

USERTTYFROMLOGIN@IDLEJCPUPCPUWHATroot:0-Sat17?xdm?9:351.06s/usr/bin/gnome-rootpts/1:0.0Sat1743.00s0.51s0.51sbashrootpts/20108:530.00s0.11s0.03sw7-2

進(jìn)程管理的常用命令1、ps功能:靜態(tài)顯示系統(tǒng)進(jìn)程信息格式:ps[參數(shù)]參數(shù):-a//顯示所有進(jìn)程(不包括沒有終端的進(jìn)程)-u //顯示用戶名和啟動時間-x //顯示沒有終端的進(jìn)程-e//顯示所有進(jìn)程(不顯示進(jìn)程狀態(tài))-l//顯示詳細(xì)信息-W//寬屏顯示查看PS進(jìn)程PID進(jìn)程號PPID父進(jìn)程號TTY進(jìn)程啟動的終端STAT進(jìn)程當(dāng)前的狀態(tài)S休眠D不可中斷的休眠R運(yùn)行狀態(tài)Z僵死狀態(tài)T停止?fàn)顟B(tài)NI優(yōu)先級TIME進(jìn)程自從啟動以來啟用CPU的總時間COMMAND/CMD進(jìn)程的命令名USER用戶名%CPU占用CPU時間和總時間的百分比%MEM占用內(nèi)存與系統(tǒng)內(nèi)存總理的百分比%MEM占用內(nèi)存百分比VSZ占用的虛擬內(nèi)存大小RSS占用的物理內(nèi)存大小實(shí)例:#ps

//顯示當(dāng)前用戶進(jìn)程

PIDTTYTIMECMD16229pts/200:00:00bash16260pts/200:00:00ps#ps-lroot@localhost~]#ps–u//查看隸屬于自己進(jìn)程的詳細(xì)信息Warning:badsyntax,perhapsabogus'-'?See/usr/share/doc/procps-3.2.7/FAQUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDroot23620.00.11664424tty1Ss+Dec010:00/sbin/mingettyroot23630.00.11664424tty2Ss+Dec010:00/sbin/mingettyroot31350.00.546761496pts/1Ss+Dec010:00bashroot162290.00.546721428pts/2Ss08:530:00-bashroot162633.00.34264948pts/2R+08:570:00ps-u[root@localhost~]#ps-lFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD4S016229162270750-1168waitpts/200:00:00bash4R016264162290770-1055-pts/200:00:00ps##ps–aux|more //顯示所有進(jìn)程信息(一般不使用)USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDroot10.00.22072632?SsDec010:03init[5]

root20.00.000?S<Dec010:00[migration/0]root30.00.000?SNDec010:00[ksoftirqd/0]root40.00.000?S<Dec010:00[watchdog/0]root50.00.000?S<Dec010:05[events/0]root60.00.000?S<Dec010:00[khelper]##ps-le|grephttpd1S01630910780-2486-?00:00:00httpd5S4816311163090790-2486347076?00:00:00httpd5S4816312163090790-2486339878?00:00:00httpd5S4816313163090790-2486339032?00:00:00httpd5S4816314163090840-2486339032?00:00:00httpd5S4816315163090850-2486339032?00:00:00httpd5S4816316163090850-2486326541?00:00:00httpd5S4816317163090850-2486326541?00:00:00httpd5S4816318163090850-2486326541?00:00:00httpd

Ps–sortPID(time)–l|grephttpd查詢時進(jìn)行排序查看指定用戶的進(jìn)程信息Ps–uU用戶名=ps–aux|grephaha查看指定進(jìn)定Ps–le|grep進(jìn)程名稱Ps–le|grepinit查看所有系統(tǒng)信息樹狀信息Pstree|moreKill殺死進(jìn)程關(guān)閉進(jìn)程kill進(jìn)程號強(qiáng)行關(guān)閉kill–9進(jìn)程號重啟進(jìn)程kill-1進(jìn)程號關(guān)閉圖形化進(jìn)程xkill有個描準(zhǔn)鏡關(guān)閉某個程序結(jié)束所有進(jìn)程killall服務(wù)名稱(httpd)

查找服務(wù)進(jìn)程號pgrep服務(wù)名稱(httpd)關(guān)閉進(jìn)程pkill進(jìn)程名程(httpd)查看進(jìn)程目錄名ls/proccat/proc/cpuinfo/meminfo查看CPU、內(nèi)存信息Nice指定程序的運(yùn)行優(yōu)先級格式:nice–n命令Eg:nice--5httpd可能用servicehttpdserviceps–le|grephttpdRenice改變一個正在運(yùn)行的進(jìn)程的優(yōu)秀級格式:renicenpid例如renice-5777優(yōu)先級的取值(-20,19)默認(rèn)為0值越小,越優(yōu)先Nohup使進(jìn)程在用戶退出登錄后仍舊繼續(xù)執(zhí)行,nohup命令將執(zhí)行后的數(shù)據(jù)信息和錯誤信息默認(rèn)默認(rèn)儲存到文件nohup.out中格式:nohup命令&例如nohupfind/-nameinit*>/etc/haha.find&進(jìn)程的掛起和恢復(fù)進(jìn)程的中止和終止掛起ctrl+z終止ctrl+c進(jìn)程的恢復(fù)后到前臺fgfg2前臺到后臺bgbg1查看被掛起的jobs

3、kill功能:終止正在運(yùn)行的進(jìn)程或作業(yè)格式:kill

[選項]PID選項:-9//當(dāng)無選項的命令不能終止進(jìn)程時,可強(qiáng)行終止指定進(jìn)程實(shí)例:

#kill2683#kill-93#kill-9358//一次殺死3,5,8多個進(jìn)程4、killall功能:終止指定程序名的所有進(jìn)程格式:killall-9程序名實(shí)例:#killall-9vsftpd //殺死所有對應(yīng)vsftpd程序的進(jìn)程5、作業(yè)的前后臺操作(1)jobs[選項]功能:顯示當(dāng)前所有作業(yè)選項:-p:僅顯示進(jìn)程號-l:同時顯示進(jìn)程號和作業(yè)號格式:jobs實(shí)例:#jobs#jobs–l#jobs-p(2)fg功能:把后臺的作業(yè)調(diào)入前臺運(yùn)行格式:#fg[作業(yè)編號]實(shí)例:#fg //隊首的作業(yè)調(diào)入前臺運(yùn)行#fg2 //將隊列中的2號作業(yè)調(diào)入前臺運(yùn)行(3)bg功能:將前臺作業(yè)或進(jìn)程切換到后臺運(yùn)行格式:bg[作業(yè)編號]ctrl+z 將前臺程序轉(zhuǎn)入后臺停止運(yùn)行ctrl+c 將終止前臺程序的運(yùn)行實(shí)例:#bg //將隊首的作業(yè)調(diào)入后臺運(yùn)行#bg3 //將3號作業(yè)調(diào)入后臺運(yùn)行2、top功能:動態(tài)顯示系統(tǒng)進(jìn)程信息格式:top實(shí)例:#top(默認(rèn)每5秒鐘刷新一次)top的操作命令:help //獲取top的幫助kPID //終止指定的進(jìn)程q //退出topu//查看指定用戶的進(jìn)程c//顯示整個命令而不僅令顯示命令名

r//設(shè)置進(jìn)程優(yōu)先級案例二把當(dāng)前時間改為2009年3月16日10點(diǎn)30分30秒;Date–-set“03/16/0910:30:30”利用at設(shè)置一個任務(wù)自動化,在當(dāng)天11:00鐘,在根目錄下自動創(chuàng)建一個abc目錄,并進(jìn)入到abc目錄中,建立一個空的文件test,同時對該文件進(jìn)行打包成test.tar;讓該系統(tǒng)在每周的1、3、5下午17:30自動關(guān)閉該系統(tǒng);在該系統(tǒng)在每月的16號自動啟動smb服務(wù);7-3

進(jìn)程調(diào)度計劃任務(wù)At安排作業(yè)在某一個時刻執(zhí)行一切Batch安排作業(yè)在系統(tǒng)負(fù)載不重時執(zhí)行一切Corn安排周期性運(yùn)行的作業(yè)7-3

進(jìn)程調(diào)度1、at(后臺運(yùn)行一次)功能:安排系統(tǒng)在指定時間運(yùn)行程序格式:at[參數(shù)]時間參數(shù):-d//刪除指定的調(diào)度作業(yè)-m//任務(wù)結(jié)束后會發(fā)送mail通知用戶-f文件名//從指定文件中讀取執(zhí)行的命令-q[a-z] //指定使用的隊列At-l

oratq//顯示等待執(zhí)行的調(diào)度作業(yè)時間的表示方法:絕對表示方法:midnight //當(dāng)天午夜noon //當(dāng)天中午teatime //當(dāng)天下午4點(diǎn)hh:mmtodayhh:mm星期

hh:mmtomorrowhh:mmmm/dd/yy

相對表示方法:

now+nminutes//從現(xiàn)在起向后n分鐘now+ndays

//從現(xiàn)在起向后n天now+nhours

//從現(xiàn)在起向后n小時now+nweeks

//從現(xiàn)在起向后n周At命令指定時間的格式指定在今天下午18:30分做某項任務(wù)(今天是12月6日,14:30分)命令格式如下:At6:30pmAt18:30At18:30todayAtnow+4hoursAtnow+240minutesAt18:3006.12.12At18:3012/6/12例:atnow+5minutes(回車)At>/usr/bin/wall</etc/motd(ctrl+d結(jié)束)//命令的路徑寫絕對路徑檢查命令指行的情況:FingerrootPs–le|grepatd查看進(jìn)程/etc/rc.d/init.d/atdstart啟動進(jìn)程At–l查看計劃任務(wù)=atqAt-d刪除計劃任務(wù)=atrm+序列號

/var/spool/at存放計劃任務(wù)的臨時文件例2:5分鐘后在/tmp下創(chuàng)一個文件夾gogo,再創(chuàng)一個文件haha.txt,然后使用find命令查找名為init*文件,將查詢結(jié)輸出到haha.txt中,追加當(dāng)前日期到haha.txt的結(jié)尾

at(batch)now+5minutesAt>mkdir/tmp/gogoAt>touch/tmp/gogo/haha.txtAt>find/-nameinit*>/tmp/gogo/haha.txtAt>date>>/tmp/gogo/haha.txtCtrl+dat+l查看

ps+le|grepatdAt的配置文件如果/etc/at.allow文件存在,則只有列在此文件中的用戶才可以使用AT命令,如果/etc/at.allow不存在,則檢查/etc/at.deny文件是否存在。如存在,則在此命令中列出的用戶不能使用則命令。如果兩文件都不存在,或都為空。則只有ROOT可以使用如果需要執(zhí)行的命令很多,可以用vi寫一個腳本生成.script如at.scripts使用at命令A(yù)t–fat.script9:002/2/12或At<at.script9:0012/6/12舉例說明要找出系統(tǒng)所有以txt為后綴名的文件并且進(jìn)行打印。打印結(jié)束后給用戶liyang發(fā)出郵件通知取件。指定時間為三月二十五日18點(diǎn)。首先鍵入$at18:003/25/09然后系統(tǒng)出現(xiàn)at>提示符,等待用戶輸入進(jìn)一步的信息,也就是需要執(zhí)行的命令序列:at>find/-name“*.txt”|lprat>echo“l(fā)iyang:Alltextshavebeenprinted.Youcancomehereandtakethem.Havaaniceday!”|mail–s“jobdone”liyangat<EOF>Warning:commandwillbeexecutedusing/bin/shJob1at2009-03-2518:00實(shí)例:#at

21:00

3/21/2009 >cd/back/ >tar-cvftmp.tar/tmp >init0 ctrl+d //結(jié)束作業(yè)與at相關(guān)的還有atq顯示隊列中的作業(yè)信息命令和atrm刪除隊列作業(yè)的命令,如下例所示。//顯示at等待隊列的作業(yè)信息#atq12007-01-2523:00aroot22007-01-2500:00aroot//刪除at等待隊列中序號為1的作業(yè)[root@localhost/]#atrm1batch和at命令功能幾乎相同。

安排一個或多個命令在系統(tǒng)負(fù)載較輕時運(yùn)行一次。(平均負(fù)載在0。8以下)3、crontab(重點(diǎn))功能:安排作業(yè)讓系統(tǒng)在指定時間周期運(yùn)行原理:cron進(jìn)程,每隔一分鐘,檢查/var/spool/cron目錄下用戶提交的作業(yè)文件中有無任務(wù)需要運(yùn)行格式crontab–l顯示當(dāng)前的crontabcrontab–r刪除當(dāng)前的crontabcrontab–e使用編輯器編輯當(dāng)前的crontab文件crontab文件中時間和命令的輸入該文件中每行包括六個域,其中前五個域是指定命令被執(zhí)行的時間,最后一個域是要被執(zhí)行的命令。每個域之間使用空格或者制表符分隔說明:把知道的添上,不知道的就寫*號可以使用通配符“*”:表示任何時間每個域的時間值可以是多個,時間值之間用逗號隔開minutehourday-of-monthmonth-of-yearday-of-weekcommands分鐘小時天月星期命令分鐘小時天月星期命令04****018**2,5018*1-32,53017**1-5/usr/bin/wall</etc/issue4517**1-5/sbin/shutdown–hnow*/512-14*3-6,9-121-5/bin/cp/etc/backup/benfen.2012.12.16>/etc/backup/etc.bak.err>/dev/null1。每天4點(diǎn)做備份2。周二,周五下午6:00做備份3。1-3下月,周二,周五下午6:00做備份4。假設(shè)周一到周五5:30分通知學(xué)生17:50分關(guān)機(jī)5.學(xué)校上課期間每5分,中午12-14點(diǎn)做備份/etc/backup/etc.bak.err錯誤輸出>/dev/null正確輸出但不顯示如:建立crontab文件

#vi/root/root.cron格式:分時日月星期要運(yùn)行的程序?qū)嵗?1211*/sbin/shutdown –rnow說明:數(shù)字表示具體時間;*表示任何時間; 0-23/2表示每隔2小時,即:0:25,2:25,4:25;

1,3,5:表示多種用“,”隔開。書寫注意事項這些項都不能為空,必須填入如果用戶不需要指定期其中的幾項,那么可以使用*表示任何時間每個時間字段都可以指定多個值,它們之間用逗號間隔命令要用絕對路徑用戶必須具有運(yùn)行所對應(yīng)的命令或程序的權(quán)限。Crontab應(yīng)用示例應(yīng)用范例:Crontab–e//編輯文件5017***/usr/bin/wall</etc/motd//分鐘小時天月星期命令

001,15*1/bin/cp–R/etc/backup/etc.bak00**1/sbin/shutdown–rnow編輯完成后保存文檔:wq!查看編輯的文檔ls/var/spool/cron/用戶名Cat/var/spool/cron/root查看其中的內(nèi)容臨時文件Crontab–l查看計劃任務(wù)Crontab–r全部刪除最后使用crontab–e刪除其中一條Ps–le|grepcrond查看進(jìn)程中是否啟動進(jìn)程啟動進(jìn)程/etc/rc.d/init.d/crondstart配置文件vi/etc/crontab定議執(zhí)行的環(huán)境變量(2)運(yùn)行crontab命令功能:維護(hù)用戶的crontab配置文件格式:crontab[參數(shù)]文件名參數(shù):-u用戶名 //指定具體用戶的cron文件-r//刪除用戶的crontab文件-l//顯示用戶的cron文件-e //編輯用戶的crontab文件01****rootrun-parts/etc/cron.hourly024***rootrun-parts/etc/cron.daily224**0rootrun-parts/etc/cron.weekly4241**rootrun-parts/etc/cron.monthlyLs/etc/cron.weekly實(shí)例:#crontab

/root/root.cron

//建立當(dāng)前標(biāo)準(zhǔn)格式用戶crontab文件#crontab–r

//刪除當(dāng)前用戶的cron文件配置案例:要求:root用戶在每周2,4,6早上3點(diǎn)啟動系統(tǒng)配置過程:#vi/root.cron (以root用戶登錄)

03**2,4,6/sbin/shutdown-rnow#crontab/root.cron

crontab命令提交的調(diào)度任務(wù)存放在/var/spool/cron目錄中,并且以提交的用戶名稱命名,等待crond進(jìn)程來調(diào)度執(zhí)行。注意:(1)/etc/at.deny和/etc/at.allow文件 用于控制用戶運(yùn)行at的任務(wù)可以通過/etc/at.deny和/

溫馨提示

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

評論

0/150

提交評論