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

下載本文檔

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

文檔簡介

第七章進程管理7-1

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

進程管理的常用命令

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

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

//顯示當前用戶進程

PIDTTYTIMECMD16229pts/200:00:00bash16260pts/200:00:00ps#ps-lroot@localhost~]#ps–u//查看隸屬于自己進程的詳細信息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 //顯示所有進程信息(一般不使用)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查詢時進行排序查看指定用戶的進程信息Ps–uU用戶名=ps–aux|grephaha查看指定進定Ps–le|grep進程名稱Ps–le|grepinit查看所有系統(tǒng)信息樹狀信息Pstree|moreKill殺死進程關閉進程kill進程號強行關閉kill–9進程號重啟進程kill-1進程號關閉圖形化進程xkill有個描準鏡關閉某個程序結束所有進程killall服務名稱(httpd)

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

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

[選項]PID選項:-9//當無選項的命令不能終止進程時,可強行終止指定進程實例:

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

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

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

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

oratq//顯示等待執(zhí)行的調度作業(yè)時間的表示方法:絕對表示方法:midnight //當天午夜noon //當天中午teatime //當天下午4點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分做某項任務(今天是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結束)//命令的路徑寫絕對路徑檢查命令指行的情況:FingerrootPs–le|grepatd查看進程/etc/rc.d/init.d/atdstart啟動進程At–l查看計劃任務=atqAt-d刪除計劃任務=atrm+序列號

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

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命令At–fat.script9:002/2/12或At<at.script9:0012/6/12舉例說明要找出系統(tǒng)所有以txt為后綴名的文件并且進行打印。打印結束后給用戶liyang發(fā)出郵件通知取件。指定時間為三月二十五日18點。首先鍵入$at18:003/25/09然后系統(tǒng)出現(xiàn)at>提示符,等待用戶輸入進一步的信息,也就是需要執(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實例:#at

21:00

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

安排一個或多個命令在系統(tǒng)負載較輕時運行一次。(平均負載在0。8以下)3、crontab(重點)功能:安排作業(yè)讓系統(tǒng)在指定時間周期運行原理:cron進程,每隔一分鐘,檢查/var/spool/cron目錄下用戶提交的作業(yè)文件中有無任務需要運行格式crontab–l顯示當前的crontabcrontab–r刪除當前的crontabcrontab–e使用編輯器編輯當前的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點做備份2。周二,周五下午6:00做備份3。1-3下月,周二,周五下午6:00做備份4。假設周一到周五5:30分通知學生17:50分關機5.學校上課期間每5分,中午12-14點做備份/etc/backup/etc.bak.err錯誤輸出>/dev/null正確輸出但不顯示如:建立crontab文件

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

1,3,5:表示多種用“,”隔開。書寫注意事項這些項都不能為空,必須填入如果用戶不需要指定期其中的幾項,那么可以使用*表示任何時間每個時間字段都可以指定多個值,它們之間用逗號間隔命令要用絕對路徑用戶必須具有運行所對應的命令或程序的權限。Crontab應用示例應用范例: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查看其中的內容臨時文件Crontab–l查看計劃任務Crontab–r全部刪除最后使用crontab–e刪除其中一條Ps–le|grepcrond查看進程中是否啟動進程啟動進程/etc/rc.d/init.d/crondstart配置文件vi/etc/crontab定議執(zhí)行的環(huán)境變量(2)運行crontab命令功能:維護用戶的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實例:#crontab

/root/root.cron

//建立當前標準格式用戶crontab文件#crontab–r

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

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

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

溫馨提示

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

評論

0/150

提交評論