第7章进程管理与系统监视7-1进程与作业管理7-1-1进程与作业简介7-1-2启动进程与作业7-1-3桌面环境下管理进程与作业7-1-4管理进程与作业的Shell命令7-1-1进程与作业简介1、进程进程是具有独立功能的程序的一次运行过程,是系统资源分配和调度的基本单位。PID进程与程序:进程不是程序,但由程序产生。进程与程序的区别:程序是一系列指令的集合,是静态的概念;进程是程序的一次运行过程,是动态的概念。程序可长期保存;而进程只能暂时存在,动态产生、变化和消亡。进程与程序并不一一对应,一个程序可启动多个进程;一个进程可调用多个程序。2、作业正在执行的一个或多个相关进程可形成一个作业。一个作业可启动多个进程。–前台作业:运行于前台,用户正对其进行交互操作。–后台作业:不接收终端输入,向终端输出执行结果。作业既可以在前台运行也可以在后台运行。但在同一时刻,每个用户只能有一个前台作业3、进程的状态:–就绪:进程已获得除cpu以外的运行所需全部资源。–运行:进程占用cpu正在运行。–等待:进程正在等待某一事件或某一资源。–挂起:正在运行的进程,因为某个原因失去cpu而暂停运行。–终止:进程已结束。–休眠:进程主动暂时停止运行。–僵死:进程已停止运行,但是相关控制信息仍保留。4、进程的优先级:Linux中所有进程根据其所处状态,按照时间顺序排列成不同的队列。系统按一定的策略进行调度就绪队列中的进程。启动进程的用户或超级用户可以修改进程的优先级,但普通用户调低优先级,而超级用户既可调高也可调低优先级。Linux中进程优先级的取值范围为-20~19之间的整数,取值越低,优先级越高,默认为0。7-1-2启动进程与作业(1)1、进程与作业的启动方式(1)手工启动是指由用户输入Shell命令后直接启动进程。–前台启动:用户输入一个Shell命令后按下Enter键就启动了一个前台作业。–后台启动:Shell命令的末尾加上“&”符号,再按下Enter键,那么就将启动一个后台作业。(2)调度启动是系统按用户要求的时间或方式执行特定的进程。Linux中可实现at调度、batch调度和cron调度。7-1-2启动进程与作业(2)2、作业的前后台切换(1)bg命令格式:bg[作业号]功能:将前台作业切换到后台运行。若没有指定作业号,则将当前作业切换到后台。ctrl+zbg17-1-2启动进程与作业(3)2、作业的前后台切换(2)fg命令格式:fg[作业号]功能:将后台作业切换到前台运行。若没有指定作业号,则将后台作业序列中的带【+】作业切换到前台运行。7-1-3桌面环境下管理进程与作业7-1-4管理进程与作业的Shell命令(jobs)1、jobs命令格式:jobs[选项]功能:显示当前所有的作业。主要选项说明:-p(process)、-l(list)7-1-4管理进程与作业的Shell命令(ps)2、ps命令格式:ps[选项]功能:显示进程的状态。无选项时显示当前用户在当前终端启动的进程。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。主要选项说明:-a(all)显示带有控制终端的所有用户进程。-e显示系统中所有进程。包括所有用户进程和系统进程。-l(list)显示进程详细信息。包括父进程号和进程优先级等。u(user)显示用户进程详细信息。包括cpu和内存使用率。x显示用户所有进程信息-t终端号显示指定终端上的进程信息-r只显示正在运行的进程。-a(all)显示带有控制终端的所有用户进程-e显示系统中所有进程。包括所有用户进程和系统进程。ps标识进程的5种状态码:D不可中断休眠uninterruptiblesleep(usuallyIO)R运行runnable(onrunqueue)S可中断休眠,满足一定条件可成R状态sleepingT停止tracedorstoppedZ僵死adefunct(”zombie”)process-l(list)显示进程详细信息。包括父进程号和进程优先级等STAT进程状态,用下面的代码中的一个给出:D不可中断休眠Uninterruptiblesleep(usuallyIO)R正在运行,或在队列中的进程S处于休眠状态T停止或被追踪Z僵尸进程高优先级N低优先级L有些页被锁进内存,通常意味实时操作s包含子进程+表示是一个前台进程组l多线程进程u(user)显示(当前)用户进程详细信息。包括cpu和内存使用率x显示(当前)用户所有进程信息-x和-a比较同一终端端下查看ps–au显示所有用户进程详细信息ps–xu显示当前用户进程详细信息7-1-4管理进程与作业的Shell命令(kill)3、kill命令格式:kill[选项]进程号功能:终止正在运行的进程或作业。超级用户可终止所有的进程,普通用户只能终止自己启动的进程。主要选项说明:-9强行终止指定进程。当需要中断一个前台进程的时候,通常是使用Ctrl+c组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。kill可以通过向一个进程发送一个讯号来控制进程。这个讯号既可以是数字,也可以是名称。默认情况下,kill向进程传送进程号15,即terminate,以通知进程结束。我们可以使用kill–l列出所有可以由kill传递的讯号。7-1-4管理进程与作业的Shell命令(nice)4、nice命令格式:nice[-优先级值]命令功能:指定将启动的进程的优先级。不指定优先级值时,将优先级设置为0。7-1-4管理进程与作业的Shell命令(renice)5、renice命令格式:renice优先级值参数功能:修改运行中的进程的优先级,设定指定用户或组群的进程优先级。主要参数说明:-p进程号、-u用户名、-g组群号7-2系统监视•7-2-1桌面环境下监视系统「主菜单」=「系统工具」=「系统监视器」可实现对CPU、硬盘、内存和交换分区的实时监视•7-2-2实施系统监视的Shell命令7-2-2实施系统监视的Shell命令(who)1、who命令格式:who[选项]功能:查看当前已登录的所有用户。主要选项说明:-m显示当前用户的用户名7-2-2实施系统监视的Shell命令(top)2、top命令格式:top[-d秒数]功能:动态显示CPU利用率、内存利用率和进程状态等相关信息,是目前使用最广泛的实时系统性能监视程序。默认每5秒钟更新显示信息,而“-d秒数”选项可指定刷新频率。注:top命令默认按照进程的CPU使用率排列所有的进程。按下M键将按照内存使用率排列所有进程,按下T键将按照进程的执行时间排列所有进程,而按下P键将恢复按照CPU使用率排列所有进程。最后按下CTRL+C组合键或者q键结束top命令。7-2-2实施系统监视的Shell命令(free)3、free命令格式:free[选项]功能:显示内存和交换分区的相关信息。7-3系统日志管理•系统日志记录着系统运行的详细信息。•系统日志文件都保存于/var/log目录中:–boot.log、cron、dmesg(内核启动)、maillog、rpmpkgs、secure、messages(系统运行过程)、XFree86.0.log•直接查看/var/log目录中日志文件的内容•「系统」=「管理」=「系统日志」