您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > linux进程控制与管理
第七章进程控制与管理•进程的概念•显示系统中当前执行的进程•终止执行中的进程•动态显示执行中的进程命令•检查内存状态•改变进程优先级•任务自动调度进程监视和控制是任何Linux系统管理员的核心任务。进程:程序关于某隔数据集合在处理机上的一次运行过程。进程分类:前台(交互)进程、后台(包含守护)进程查看守护进程:ntsysv启动守护进程(服务):service进程名start/restartstop•一般进程执行完就退出,而常见的一些服务进程通常永久的运行在后台,不向屏幕输出结果。在Unix中这些永久的后台进程称为守护进程(daemon)。守护进程通常从系统启动时自动开始执行,系统关闭时才停止。如果偶然某个守护进程消失了,那么它提供的服务将不再能被使用。进程的启动1.手工启动•前台进程启动:程序名回车•后台进程启动:程序名&回车•注:交互进程在用户注销时自动关闭,为了让注销时程序能够继续运行,可以nohup程序名&2.调度启动(at,cron,anacron等)父进程和子进程:Linux为每一个进程分配一个进程标识号以指定和跟踪进程。PID:进程ID号PPID:父进程ID号前台和后台程序运行:后台运行程序:程序名&后台程序转入前台:fg进程名已经在前台运行的进程转入后台:ctrl+Z暂停进程,bg将其调入后台与进程管理有关的命令和工具1.显示系统中正在执行的进程ps功能:查看当前系统中运行的进程的信息基本格式:ps[选项]单独使用表示查看当前用户进程,常用参数:•-A显示所有进程,包括系统进程和后台进程,?表示该进程不占用终端资源•-a其他用户执行的进程一起列出•-r只显示正在运行的进程•-u按面向用户的格式显示•-x显示所有没有控制终端进程信息•-l长格式输出-w宽行显示ps显示字段说明:•UID:进程所有者的userID•PID:进程IDPPID:父进程ID•%CPU:进程使用CPU的时间比•%MEM:使用内存的百分比•SIZE:使用虚拟内存大小•NI:优先级VSZ:虚拟内存大小•RSS:常驻内存大小(Kbyte)•TTY:与进程有关的终端•STAT:状态•Start:进程开始执行的时间其中STAT具体含义如下:见教材p135R:运行态S:休眠态I:空闲态Z:僵死态D:磁盘等待P:页等待W:交换导出N:低优先级T:终止:高优先级例如:ps-uUSER、PID、%CPU、%MEM、VSZ、RSS、TTY、STAT、START、TIME、COMMANDguest16540.10.858081540pts/0S23:160:00-bashps-waux2.动态显示执行中的进程top功能:动态显示系统当前的进程及其状态,可以通过用户按键来不断刷新当前状态。比较准确地说,top命令提供了实时的对系统处理器的状态监视。它可以显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用(P)、内存使用(M)和执行时间(T)对任务进行排序,而且它的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。U:监视特定用户K:中止指定进程格式:top[-d][时间间隔]例如:top:以交互的方式显示执行中的进程对cpu,内存的使用情况。top–d5:以时间间隔5秒刷新显示结果通过在键盘上按下ctrl+C来终止top的执行。3.进程的终止进程终止的情况1、程序正常结束就退出2、结束前台运行程序:方法一:ctrl+c方法二:kill命令3、后台运行程序使用kill命令4、发送信号给该程序的所有进程killall格式kill[-s信号量|]PID说明:kill送出一特定的信号(signal)给行程ID为PID的行程根据该信号而做特定的动作,若没有指定,预设是送出终止(TERM)的信号。常用的信号有:HUP(1),KILL(9),TERM(15)分别代表着挂起,杀死,结束详细的信号可以用kill-l列出例如:将pid为2323的进程kill掉:kill-92323将pid为2456的进程重跑(restart):kill-HUP2456killall命令命令格式和kill类似不过killall可以直接加上进程名称例如:[guest@obglinuxguest]$cat&[1]2772[guest@obglinuxguest]$killall–9cat[1]+已杀死cat[guest@obglinuxguest]$进程的挂起和恢复进程的中止(挂起)和终止–挂起(Ctrl+Z)–终止(Ctrl+C)进程的恢复–恢复到前台继续运行(fg)–恢复到后台继续运行(bg)查看被挂起的进程(jobs)4。检查内存状态free功能:查看当前系统内存和交换分区的使用状态。功能:显示系统内存和交换分区的使用情况格式:free[-选项][参数]常用的选项s,用于按指定的时间间隔持续显示内存和交换分区的使用情况。例如:free–s10表示以间隔10秒刷新显示的结果进程优先级:•Linux是采用优先数调度算法来分配CPU1、普通用户只能降低进程优先级2、root允许提高优先级•ps–l显示出NI和PRI字段PRI:是进程实际运行优先级(系统计算)NI:是进程请求执行优先级•优先级范围为-20~19-20:最高优先级19:最低优先级进程默认的优先级为05.指定进程优先级nice,renice5.1:nice使某程序以指定的优先级运行。格式:nice-n程序其中n为指定的优先级,-是选项标志,要将优先级设置为负数,有两个--。见教材p144如果n的取值超过进程优先机级的范围[-20,19],自动调整为最接近的取值。5.2renice:允许用户修改一个正在运行进程的优先级格式:renicen[-选项][参数]pid其中n为指定要修改的优先级,与nice不同。常见选项-u用户名列表更改用户所有进程的优先级。-g组名列表更改组中所有进程的优先级见教材p145在使用nice和renice命令时要注意:•用户只能对自己所有的进程使用renice命令。•root用户可以在任何进程上使用renice命令。•只有root用户才能提高进程的优先权与进程管理有关的图形工具“系统监视器”功能:显示进程列表及各进程对cpu,内存的使用情况,可以在图形界面下执行如下命令的功能:top,kill,nice,renice等见教材p140-142,p145等设置任务调度有时候,尤其在服务器上,需要在指定的时间以一定的间隔周期性地执行某些特殊进程,交互式启动进程已经无法满足这中需要。需要采用调度的方式预先指定进程的执行。可采用的调度启动任务的方法有:1。以cron调度执行2。以anacron调度执行任务以cron调度执行cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。系统通过命令crontab,用户可以提交、编辑或删除相应的调度执行的作业。cron是linux系统的一个十分重要的守护进程,无论是系统管理员还是普通用户要使用cron进行周期性进程的调度,必须保证该守护进程已经安装和启动启动。判断安装和启动的命令见教材p150与调度有关的配置文件每一个用户都可以有一个crontab文件来保存调度信息。可以使用它运行任意一个shell脚本或某个命令,每小时运行一次,或一周三次,这完全取决于你。每一个用户都可以有自己的crontab文件,但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。系统管理员是通过cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件。Crontab配置文件的格式一个配置文件中有多行,每一行代表一各需要周期性调度的任务。每一行用空格或tab分隔成6列,各列的意义如下:第1列:分钟,1~59第2列:小时,1~23(0表示子夜)第3列:日,1~31第4列:月,1~12第5列:星期,0~6(0表示星期天)第6列:要运行的命令(最好以绝对路径表示以避免搜索路径的问题)其中1-5列可以用-代表时间段,用*代表任意,用,代表枚举的特定值例如:4541,10,22**/apps/bin/backup.sh上面的例子表示每月1、10、22日的4:45运行/apps/bin目录下的backup.sh。101**6,0/bin/find-namecore-execrm{}\;上面的例子表示每周六、周日的1:10运行一个find命令。0,3018-23***/apps/bin/dbcheck.sh上面的例子表示在每天18:00至23:00之间每隔30分钟运行/apps/bin目录下的dbcheck.sh。023**6/apps/bin/qtrend.sh上面的例子表示每星期六的11:00pm运行/apps/bin目录下的qtrend.sh。设置调度任务1。设置系统调度任务Linux的系统调度任务都保存在/etc/crontab文件中,直接将要调度的任务以指定的格式添加在该文件中即可(可用vi编辑)。2。设置用户调度任务2.1用vi创建新的调度配置文件,并保存在当前目录下2.2crontab–e命令创建新的调度配置文件创建新的文件并存盘退出后,相应的配置文件会保存在/var/spool/cron目录下以用户名作为配置文件的文件名。启动调度任务1。以crontab–e命令编辑配置文件,系统自动检查配置文件的完整性,并启动任务调度服务。2。以vi编辑配置文件,需要用户手工执行下列命令来启动调度任务:crontab调度配置文件(含路径)当调度任务不再需要执行时,可以删除调度任务,命令格式如下:crontab–r可以删除调度任务cron的存取管理系统通过/etc/cron.allow和/etc/cron.deny文件决定是否允许用户新增或删除cron调度工作。这两个文件的内容是用户名称,一行一个用户名。系统决定存取权力的顺序:先查看cron.allow文件,如果存在,只有cron.allow文件中出现的用户才被允许增、删如果cron.allow不存在,查看cron.deny,只有cron.deny中出现的用户才不允许增、删anacron调度cron调度要求系统全天开机,如果在指定调度的时间没有开机,则由cron调度的任务会错过执行时间而无法执行。当你的Linux服务器并不是全天运行,anacron就可以帮你执行在“crontab”设定的时间内没有执行的工作。所有由anacron调度的任务信息都记录在一个配置文件/etc/anacrontab文件中,一行代表一个任务信息,每行的格式如下(4列):间隔时间等待时间工作标识码命令(天)(分钟)•对于每项任务,anacron先判定该任务是否已在配置文件的period字段中指定的期间内被执行了。如果它在给定期间内还没有被执行,anacron会等待delay字段中指定的分钟数,然后执行command字段中指定的命令。任务完成后,anacron在/var/spool/anacron目录内的时间戳文件中记录日期。只有日期被记录(无时间),而且job-identifier的值被用作时间戳文件的名称。•具体例子见教材p155
本文标题:linux进程控制与管理
链接地址:https://www.777doc.com/doc-3684651 .html