300 likes | 449 Views
第 7 章 进程管理与系统监视. 理解进程和作业的基本概念,掌握进程和作业的启动方式和管理方法,重点掌握 at 和 cron 调度的设置方法,掌握系统监视和查看系统日志的方法。. 7.1 进程与作业管理( 1 ). 7.1.1 进程与作业简介 1. 进程 进程是具有独立功能的程序的一次运行过程 ,也是系统进行资源分配和调度的基本单位。每个进程有唯一的一个进程号。 进程与程序的区别 程序是一系列指令的集合,是静态的概念;进程是由程序产生,是程序的一次运行过程,是动态的概念。 程序可以长期保存;进程只能暂时存在,动态地产生、变化和消亡。.
E N D
第7章 进程管理与系统监视 理解进程和作业的基本概念,掌握进程和作业的启动方式和管理方法,重点掌握at和cron调度的设置方法,掌握系统监视和查看系统日志的方法。
7.1 进程与作业管理(1) 7.1.1 进程与作业简介 1.进程 进程是具有独立功能的程序的一次运行过程,也是系统进行资源分配和调度的基本单位。每个进程有唯一的一个进程号。 进程与程序的区别 • 程序是一系列指令的集合,是静态的概念;进程是由程序产生,是程序的一次运行过程,是动态的概念。 • 程序可以长期保存;进程只能暂时存在,动态地产生、变化和消亡。
7.1 进程与作业管理(2) 2.作业 正在执行的一个或多个相关进程可形成一个作业。 根据作业运行方式的不同,作业可分为两大类: • 前台作业:运行于前台,用户正对其进行交互操作。 • 后台作业:运行于后台,不接收终端的输入,但向终端输出执行结果。 注意:作业既可以在前台运行也可以在后台运行,但在同一时刻,每个用户只能有一个前台作业。
7.1 进程与作业管理(3) 3.进程的状态 基本状态: • 就绪状态:进程已获得除CPU以外的运行所需的全部资源 • 运行状态:进程占用CPU正在运行 • 等待状态:进程正在等待某一个事件或某一资源 描述进程的其他状态: • 挂起状态:正在运行的进程,因为某个原因失去CPU而暂 时停止运行 • 终止状态:进程已结束 • 休眠状态:进程主动暂时停止运行 • 僵死状态:进程已停止运行,但是相关控制信息仍保留
7.1 进程与作业管理(4) 4.进程的优先级 通过调整进程的优先级,可以改变进程在队列中的排列顺序,优先级的取值越低,优先级越高。取值范围:-20~19之间的整数,默认为0。 注意:普通用户只能调低优先级,超级用户可以调低,也可以调高优先级。
7.1 进程与作业管理(5) 7.1.2 启动进程与作业 1.进程与作业的启动方式 分为手工启动和调度启动两种: • 手工启动:指由用户输入Shell命令后直接启动进程,又可分前台启动和后台启动。 • 前台启动:输入一个Shell命令后按回车键就是启动了 前台作业 • 后台启动:在输入的Shell命令的末尾加上“&”符号, 再按回车键 • 调度启动:是系统按用户要求的时间或方式执行特定的进程。可通过at调度、batch调度和cron调度实现。
7.1 进程与作业管理(6) 2.作业的前台后台切换 • bg命令 格式:bg 【作业号】 功能:将前台作业切换到后台运行。若没指定作业号,则将当前作业切换到后台。 • fg命令 格式:fg 【作业号】 功能:将后台作业切换到前台运行。若没有指定作业号,则将后台作业序列中的第一个作业切换到前台运行。
7.1 进程与作业管理(7) 7.1.3 桌面环境下管理进程与作业 1.查看进程 单击“系统”—>“管理”—>“系统监视器”,打开“系统监视器”窗口。 进程属性有: • 状态:表示进程的状态,如运行中、睡眠中、已停止或僵死。 • %CPU:表示进程对CPU的占用率 • Nice:表示进程的优先级数值 • ID:表示进程号 • 内存:表示进程对内存的占用率 2.管理进程 选中该进程,单击“编辑”菜单,可改变进程的运行状态,及优先级(非常高优先级、高优先级、普通优先级、低优先级或者非常低优先级)等。
7.1 进程与作业管理(8) 7.1.4 管理进程与作业的Shell命令 1.jobs命令 格式:jobs 【选项】 功能:显示当前所有的作业 主要选项说明: -p(process):仅显示进程号 -l(list):同时显示进程号和作业号
7.1 进程与作业管理(9) 2.ps命令 格式:ps 【选项】 功能:显示进程的状态。无选项时显示当前用户在当前终端启动的进程 主要选项说明: -a(all):显示当前终端上所有的进程,包括其他用户的进程 信息 -e:显示系统中所有的进程,包括其他用户进程和系统进程的 信息 -l(list):显示进程的详细信息,包括父进程号、进程优先级 等 u(user):显示进程的详细信息,包括CPU和内存的使用率等 x:显示后台进程的信息 -t 终端号:显示指定终端上的进程信息
7.1 进程与作业管理(10) ps -l命令: 在使用显示进程的详细信息中的主要输出项: • F: 用树形格式来显示进程 • S:进程状态,其中R表示运行状态;S表示休眠状态;T表示暂停或终止 状态;Z表示僵死状态 • UID:进程启动者的用户ID • PID:进程号 • PPID:父进程的进程号 • PRI:程序被CPU执行的先后顺序,值越小越先执行 • NI:进程的优先级数值 • SZ:进程占用内存空间的大小,以KB为单位 • TTY:进程所在终端的终端号,其中桌面环境的终端窗口表示为pts/0, 字符界面的终端号表示为tty1~tty6 • TIME:进程已运行的时间 • CMD:启动该进程的Shell命令
7.1 进程与作业管理(11) ps u命令 显示当前进程的详细信息主要输出项: • %CPU:CPU的使用率 • %MEM:内存的使用率 • VSZ :占用虚拟内存大小 • RSS:占用内存的大小
7.1 进程与作业管理(11) • STAT:进程的状态 • D 无法中断的休眠状态(通常 IO 的进程) • R 正在运行可中在队列中可过行的 • S 处于休眠状态 • T 停止或被追踪 • W 进入内存交换(从内核2.6开始无效) • X 死掉的进程(从没出现过) • Z 僵尸进程 • < 优先级高的进程 • N 优先级较低的进程 • L 有些页被锁进内存; • s 进程的领导者(在它之下有子进程); • l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads); • + 位于后台的进程组; • START:进程的开始时间
7.1 进程与作业管理(12) 3.kill命令 格式1:kill 【选项】 进程号 格式2:kill % 作业号 功能:终止正在运行的进程或作业。 主要选项: -1:让该PID重新读取它的配置文件 -2:用户中断该程序,类似使用Ctrl+c中断一个程序 -9:强制终止进程 -15:停止该程序 注意:超级用户可终止所有的进程,普通用户只能终止自己启动的进程
7.1 进程与作业管理(13) 4.nice命令 格式:nice 【-n 优先级值】 命令 功能:指定将启动的进程的优先级。不指定优先级值时,将优先级设置为10 一般使用者可用 nice 值 : 0 ~ 19 root 管理员可用 nice 值: -20 ~ 19 5.renice命令 格式:renice 优先级值 参数 功能:修改运行中的进程的优先级,设置指定用户或组群的进程优先级。 主要参数说明: -p 进程号:修改指定进程的优先级 -u 用户名:修改指定用户所启动进程的默认优先级 -g 组群号:修改指定组群中所有用户的所启动进程的默认优先级
7.1 进程与作业管理(13) • 补充命令1:uname 格式:uname 【选项】 功能:查看系统相关信息(包括核心版本、主机名称、CPU信息等,另可查看/proc文件) 主要选项说明: -a:列出所有的系统信息 -p:列出CPU信息 -n:列出主机名 -r:列出核心版本信息 • 补充命令2:uptime 格式:uptime 功能:查看主机开机时长,当前有多少用户在线,及过去1,5,15分钟内系统的平均负载。
7.1 进程与作业管理(14) 7.1.5 进程调度 进程调度有利于提高资源的利用率,均衡系统负载,并提高系统管理的自动化程度。 用户可采用进程调度方法有: • 对于偶尔运行的进程采用at或batch调度 • 对于特定时间重复运行的进程采用cron调度 1.at调度 格式:at 【选项】 【时间】 功能:设置指定时间执行的指定的命令 主要选项说明: -f 文件名:从指定文件而非标准输入设备获取将要执行的命令 -l:显示等待执行的调度作业 -d:删除指定的调度作业
7.1 进程与作业管理(15) 进程开始执行的时间可采用以下方法表示: (1)绝对计时法 • HH:MM:时:分钟 • 可采用24小时计时制。 • 采用12小时计时制,在时间后加AM(上午)或PM(下午)。 • MMDDYY或MM/DD/YY或DD.MM.YY:指定具体的日期,必须写在具体时间之后。 (2)相对计时法 now+时间间隔:时间单位为minutes,hours,day,week。 (3)直接计时法 today、tomorrow、midnight、noon、teatime 注意:在输入at命令后,系统将出现“at>”提示符,输入完后按CTRL+D结束。
7.1 进程与作业管理(15) 例1:指定在今天下午5:30执行某命令。假设现在时间是中午12:30,2009年4月8日,其命令格式有哪些写法: • at 5:30pm • at 17:30 • at 17:30 today • at now + 5 hours • at now + 300 minutes • at 17:30 8.4.09 • at 17:30 4/8/09 • at 17:30 April 8 例2:在三天后下午4点执行文档work中的作业。 • at -f work 4pm + 3 days
7.1 进程与作业管理(16) at的另两个命令: • atq 格式:atq 功能:查看当前工作流程 • atrm 格式:atrm 编号 功能:删除流程 2.batch调度 格式:batch 【选项】 【时间】 功能:与at命令几乎相同,唯一的区别是如果不指定运行时间,进程将在系统较空闲时运行,合适在时间上要求不高,但运行时占用系统资源较多的工作。 主要选项说明: 与at的选项一致
7.1 进程与作业管理(17) 3.cron调度 at调度和batch调度中指定的命令只能执行一次,但cron调度可以重复执行指定的命令。 cron调度与crond进程、crontab命令和crontab配置文件有关。 (1)crontab配置文件 有6个字段,从左到右依次为分钟、时、日期、月份、星期和命令。 前五个字段分别代表: 分钟 (0-59) 时 (0-23) 日期 (1-31) 月份 (1-12) 周 (0-6,0为星期天)
7.1 进程与作业管理(18) 注意: • 所有字段不能为空,字段间用空格分开,如果是“*” 的时候,代表所有数字都适用的意思。 • 可以使用“-”表示一段时间 • 可以使用“,”表示指定时间 • 可以使用“/”表示每的意思 • 若果执行的命令未使用输出重定向,那么系统将会把执行结果以邮件的方式发送给crontab文件的所有者。 • 用户的crontab配置文件保存与/var/spool/cron目录中,其文件名与用户名相同
7.1 进程与作业管理(19) (2)crontab命令 格式:crontab 【-u user】 【选项】 功能:维护用户的crontab配置文件 主要选项说明: -u user:这个指令只有root能输入,查看或编译其他用户的crontab内容 -l:列出crontab的内容 -e:编辑crontab的内容 -r:删除crontab的内容 注意:指令的路径最好是绝对路径,这样比较容易找到执行的文件;运行时的结果到用户邮箱查看。
7.2 系统监视(1) 7.2.1 桌面环境下监视系统 单击“系统”—>“管理”—>“系统监视器”,打开“系统监视器”窗口。 • 选择“资源”选项卡,可实现对CPU、硬盘、内存和交换分区以及网络的实时监视。 • 单击颜色按钮,弹出“拾取颜色”对话框,可修改显示的颜色。 • 单击“编辑”菜单中的“首选项”菜单项,弹出首选项对话框,选择“资源”选项卡,可设置CPU和内存监视的更新间隔以及表示形式等。 • 选择“File Systems”选项卡,可实现对文件系统进行实时监视。 • 单击“编辑”—>“首选项”,选中“显示全部文件系统”,可显示全部文件系统的使用情况。
7.2 系统监视(2) 7.2.2 实施系统监视的Shell命令 1.who命令(还有w和whoami) 格式:who 【选项】 功能:查看当前已登录的所有用户 主要选项说明: -m:显示当前用户的用户名 -H:显示用户的详细信息 区别:区别:who仅列出用户名与登入时间,w则会列出用户的源地址(即FROM项),登入时间(LOGIN@项),工作项目(WHAT项),whoami显示当前环境的用户身份
7.2 系统监视(2) 2.top命令 格式:top 【-d 秒数】 功能:动态显示CPU利用率、内存利用率和进程状态等相关信息。默认是5秒钟更新显示信息。 对结果的操作: 按M:将按照内存使用率排列所有进程 按T:将按照进程的执行时间排列所有进程 按P:将恢复按照CPU使用率排列所有进程 按CTRL+C或q键:结束top命令
7.2 系统监视(3) top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombieCpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% siMem: 191272k total, 173656k used, 17616k free, 22052k buffersSwap: 192772k total, 0k used, 192772k free, 123988k cached • 第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下: • 01:06:48 当前时间up 1:22 系统运行时间,格式为时:分1 user 当前登录用户数load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 • 第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下: • Tasks: 29 total 进程总数1 running 正在运行的进程数28 sleeping 睡眠的进程数0 stopped 停止的进程数0 zombie 僵尸进程数
7.2 系统监视(4) • Cpu(s): 0.3% us 用户空间占用CPU百分比1.0% sy 内核空间占用CPU百分比0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比98.7% id 空闲CPU百分比0.0% wa 等待输入输出的CPU时间百分比0.0% hi 服务中断请求指令占用CPU百分比 0.0% si 软中断指令占用CPU百分比 • 最后两行为内存信息。内容如下: • Mem: 191272k total 物理内存总量173656k used 使用的物理内存总量17616k free 空闲内存总量22052k buffers 用作内核缓存的内存量Swap: 192772k total 交换区总量0k used 使用的交换区总量192772k free 空闲交换区总量123988k cached 缓冲的交换区总量。内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。
7.2 系统监视(5) 3.free命令 格式:free 【选项】 功能:显示内存和交换分区的相关信息 主要选项说明: -m:以MB为单位显示,默认以KB为单位 -t:增加显示内存和交换分区的总和信息 -s 秒数:指定动态显示时的刷新频率
7.3 系统日志管理 系统日志文件都保存与/var/log目录中,包括以下重要的日志文件: • boot.log:记录系统引导的相关信息 • cron:记录cron调度的执行情况 • dmesg:记录内核启动时的信息,主要包括硬件和文件系统的启动信息 • maillog:记录邮件服务器的相关信息 • messages:记录系统运行过程的相关信息,包括I/O,网络等 • rpmpkgs:记录已安装的RPM软件包信息 • secure:记录系统安全信息 • Xorg.0.log:记录图形化用户界面的Xorg服务器的相关信息 日志文件内容可以直接查看,也可以使用相关系统日志工具,桌面环境下查看方法:单击“系统”—>“管理”—>“系统日志”。