资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单元,16,管理进程,目标,监控进程,终止进程,计划定期任务,延迟任务,监控进程,进程 是运行程序的实例。,ps,命令用于列出进程,但只显示从此终端启动的进程,#ps aux,top,程序显示 当前进程的自动更新列表。可在,top,内使用按键来显示内容:,M,按内存使用率排列进程,P,按处理器使用率排列进程,h,显示有关更多命令的帮助,q,退出,终止和管理进程,进程使用称为信号的消息进行通信。进程随时都会接收信号(异步)。除信号编号(表示信号属于哪种类型)之外,信号不携带其他任何信息。,根据信号编号,进程能以不同方式处理信号:它可以退出、退出并转储内存副本、忽略信号或执行其他操作。大多数情况下,如果用户要向进程发送信号,就是要终止进程。系统事件可以向进程发送信号,用户也可以使用,kill,命令向进程发送任意信号。,信号,1,),top,和,kill,都可以用于向进程发送信号。,2,),kill-l,:显示定义的信号编号表。,3,),kill-9 3254,:向,PID,为,3254,的进程发送编号为,9,的信号。,编号名称功能,1HUP,重新初始化后台程序,9KILL,强制进程立即终止,15TERM,请求在进程清理后终止进程(默认),nice,值,。,linux,系统可同时运行的进程数与它的,CPU,逻辑处理单元总数相同。,。通过使进程在逻辑处理单元上轮流运行(“时间分片”),系统中运行的进程数似乎更多。,。默认情况下,每个进程对,CPU,时间的占用权限相等。,。可以更改 进程的,nice,值,以调整进程的优先级,使它所占的,CPU,时间份额大于或小于其他进程。,。,nice,值的范围从,-20,(非常希望占用其他进程的,CPU,时间)到,19,(非常愿意将,CPU,时间让给其他进程),默认值为,0.,。用户可以提高进程的,nice,值(请求更小的时间份额),。只有,root,用户可以降低进程的,nice,值(请求更大的时间份额),。,renice,和,top,都可用于更改正在运行的进程的,nice,值,。,nice,可用于设置新进程的,nice,值,练习:使用,top,管理进程,1.,在,serverX,上打开两个终端,2.,在第一个终端窗口,运行,top,3.,在第二个重点窗口,运行:,#cat/dev/zero /dev/null&,4.,并启动其他四个,cat,进程,5.,在,top,中,注意每个,cat,进程拥有大致相同的,cpu,时间份额。,6.,使用,top,,确定,cat,进程的,pid,。,7.,在第二个终端窗口中使用,renice,来调整,10,进程的,nice,值:,#renice-n 10 PID,8.,选择一个不同的,cat,进程,并迫切需要通过使用重调进程将其优先级更改为,-5.,再次观察相关,cpu,利用率。,9.,使用,nice,以较低优先级启动新的,cat,进程:,#nice-n 5 cat/dev/zero /dev/null&,10.,在,top,中使用,r,键来重调某些,cat,进程,11.,在,top,中使用,k,键来中断所有,cat,进程。,管理定期任务,cron,设置管理必须 按计划定期重复运行的程序。后台程序,crond,每分钟唤醒一次,以运行计划的任何任务。,用户使用,crontab,命令计划个人任务。,系统管理员可以在系统范围配置文件中设置任务。,单个用户使用称为,crontab,(”,cron,表“)的文本文件登记任务。,crontab-l,列出文件。,crontab-r,删除文件。,crontab-e,编辑文件。,crontab-e,命令将打开空的,crontab,文件。,crontab,文件每一行定义计划的任务,或者定义影响任务执行的”环境变量“。任务行包含六个字段:前 五个字段定义分钟、小时、几号、月份和星期几,余下一个字段指定要运行的命令。,示例,以下示例显示了每分钟运行,ls,命令的,cron,条目:,*,ls,1 2 3 4 5 6,1,:分钟验证值,0,59,2,:小时验证值,0,23,,,20,表示,8,:,00pm,3,:几号验证值,1,31,4,:月验证值,1,12,,或者该名称的前三个字母(例如,Jan,),5,:星期几验证值,0,7,(,0,或,7,为星期日),或者 该名称的前三个字母(例如,Sun,),6,:命令添加命令,使用分号(;)来分隔同时运行的多个命令。,语法,cron,语法命令何时运行,05*,每小时整点过,5,分钟,05 02*,每天,2,:,05am,30 08 01*,每月第一天,8,:,30pm,00 07 25 12*12,月,25,日,7,:,00am,30 16*5,每个星期五,4,:,30pm,*/5*,每,5,分钟(,0,,,5,,,10.45,,,50,,,55,),*,/10 9-16 1,15*,在每月第一天和第十五天,9,:,00am,至,5,:,00pm,之间(在,5,:,00pm,不会运行,最后一次运,行是在,4,:,50pm,)每隔,10,分钟,0 0 1 jan 01,月,1,日午夜 和,1,月的每个星期日(不仅是,1,月,1,日所在的星期日),主,crontab,属于系统的任务通常保存在,crontab,文件中而不是 个人文件中。,主,crontab,文件是,/etc/crontab,,可按照常规方式对其进行编辑(而不使用,crontab-e,)。,更好的做法是在常规文本编辑器中创建,crontab,文件,并将其保存在,/etc/cron.d/,中(避免更新,cronie,时出现问题,这是系统包要做的)。,/etc/cron.d/crontab,文件在日期说明之后另外加了一个字段,表示将运行作业的用户。,/etc/anacrontab,对于需要每天,每周或每月运行一次的脚步,可以直接将其设置为可执行文件,并保存在,/etc/cron.daily,weekly,monthly,中的相应目录下。这些任务由,/etc/anacrontab,配置的系统,anacron,服务运行。,在,RHEL6,中,,anacron,是,cron,的集成组件,用于更好的管理这些作业,并确保在作业因计算机关闭而未运行的情况下,在系统引导后运行作业。,练习:,1.,以下作业何时运行?,a,),00 07 25 12*/usr/local/bin/open_presents,圣诞节,7,:,00am,b,)*,/5*/usr/local/bin/take_stats,每,5,分钟,c,),07 03*/sbin/service xend restart,每天,3,:,07am,d,),30 16*5/usr/local/bin/mail_checks,每个星期五,4:30pm,2.,创建一个,cron,条目,使其在每月第一天运行一次脚本,/usr/local/bin/vacuum_db,(小时,分钟任意),05 02 1*/usr/local/bin/vacuum_db,3.,如果上一问题中的计算机在二月一日停机进行维护,会发生什么情况?要确保数据库两次清理之间的时间间隔不会达到两个月(或更长时间),有什么更好的方法?,将作业写出简单的,shell,脚本,并将其保存在,/etc/cron.monthly,中:,#!/bin/bash,/usr/local/bin/vacuum_db,计划延迟的任务,at,命令,at,命令,使用,at,命令,你可以指定某一任务或称作业,在将来的特定时间运行。,该作业可能是一次备份、对你系统的检查或者特定时间发送的通知。,那些需要花费很长时间才可完成的作业正适合这一,at,命令。,为此,仅需要使用,at,命令将任务设置为在一分钟或两分钟之后运行。然后你便可以安全注销,因为该任务会在与,shell,会话断开连接的情况下运行。,at,命令必须指定任务应运行的时间。,该指定可以是具体时间或日期,也可以是当前时间的相对时间,,通过添加其他选项,你可以在任务完成时发送邮件(,-m,),或者从文件读取任务(,-f,文件),而无需通过标准输入进行。,在键入,at,命令行之后,按,enter,并继续键入作业中包含的其他命令。任务可由多个命令组成。在完成键入要运行的命令时,在单独出现的一行中按,ctrl+d,完成任务。,例如:,$at now+2 min,at echo Hello from the at command /dev/pts/2,at Ctrl+D,job 1 at 2011-10-10 10:20,在将某一,at,作业设置为运行之后,可以通过使用,atq,命令列出作业编号以及次数。,如要查看作业中所包含的命令,输入,at-c#,(,#,表示你要查看的作业编号)。,在作业运行之前,可以通过输入,atrm#,(,#,表示作业编号)将其删除。,测试,1.,命令,at,有何作用?,at,命令在指定时间执行命令,2.at,命令的语法是什么?,at OPTIONS TIME,3.,如何在,at,命令中表达以下时间要求?,如何自现在开始三天之后的,4,:,00pm,运行作业?,at 4pm+3 days,如何在下一个,7,月,31,日,10,:,00am,运行作业?,at 10am Jul 31,如何在明天,1,:,00am,运行作业?,at 1am tomorrow,4.,命令,atq,有何作用?,atq,命令可列出用户的待处理作业。,5.atq,命令的输出格式是什么?,作业编号,日期,时间,队列和用户名,6.,命令,atrm,有何作用?,atrm,命令可以删除作业,可根据其作业编号进行识别,7.atrm,命令的语法是什么?,atrm-V job job.,练习:计划延迟的任务,1,)确定当前系统时间,#date,Tue jan 31 11:34:22 EST 2012,2,)交互式的计划,who,命令,使其在,1,分钟之后运行。,#at 11:35am,或者使用,at now+1min,at who,at Ctrl+D,job 1 at 2012-01-31 11:35,3,)在等待,at,命令完成期间,创建一个简单的包含命令,cal,的文本文件。使其可执行,#echo cal /tmp/cal-command,#chmod 755/tmp/cal-command,4,)计划在今天和明天的下午茶时间执行上述创建的命令,#at teatime today,at/tmp/cal-command,at Ctrl+D,job 2 at 2012-01-31 16:00,#at teatime tomorrow,at/tmp/cal-command,at Ctrl+D,job 3 at 2012-02-01 16:00,5,)与邻座交换座位来执行以下两个步骤,a,)使用,atq,确认待处理的,at,作业,#atq,2 at 2012-01-31 16:00,3 at 2012-02-01 16:00,b,)使用,atrm,删除在明天下午茶时间执行的作业,#atrm 3,#atq,2 at 2012-01-31 16:00,6,)切换回来并查看你的邮件,以确认最初的,who,命令已经执行,#mail,
展开阅读全文