




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章 进程管理与系统监控,学习目标,了解进程的基本概念 了解进程的基本类型 掌握如何使用命令进行进程控制 掌握如何使用命令进行系统监控,7.1 进程概述,1. 程序和进程 程序是一组指令的有序集合 从用户角度来看,进程是应用程序的一个执行过程。从操作系统核心角度来看,进程代表的是操作系统分配的内存、CPU时间片等资源的基本单位,是为正在运行的程序提供的运行环境。 如果我们把一部动画片的电影拷贝比拟成 一个程序,那么这部动画片的一次放映过 程就可比为一个进程。,进程和程序区别: (1)进程是动态的,而程序是静态的。 (2)进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。 (3)一个程序可以启动多个进程。,进程的三种基本状态: 运行态(Running): 进程占有CPU,并在CPU上运行 就绪态(Ready): 一个进程已经具备运行条件,但由于无CPU 暂时不能运行的状态(当调度给其CPU时, 立即可以运行) 等待态(Blocked):阻塞态、封锁态、睡眠态 指进程因等待某种事件的发生而暂时不能运行 的状态(即使CPU空闲,该进程也不可运行),三种基本状态及其转换,2. 进程的分类 进程一般分为交互进程、批处理进程和守护进程三类 : 交互进程:由shell启动的进程。 批处理进程:这种进程和终端没有联系,是一个进程序列。 守护进程:在后台持续运行的进程。值得一提的是守护进程总是活跃的,是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动,3. 进程的属性 进程ID(PID):是唯一的数值,用来区分进程; 父进程和父进程的ID(PPID); 启动进程的用户ID(UID)和所归属的组(GID); 进程状态:状态分为运行R、休眠S、僵尸Z; 进程执行的优先级; 进程所连接的终端名; 进程资源占用:比如占用资源大小(内存、CPU占用量);,7.2 进程管理命令,7.2.1 报告进程状态 7.2.2 结束进程 7.2.3 前台和后台进程 7.2.4 调整优先级,7.2.1 报告进程状态,ps 监视进程工具 ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用top工具; 命令格式: PS 选项,ps 提供了很多的选项参数,常用的有以下几个 : l 长格式输出; u 按用户名和启动时间的顺序来显示进程; f 用树形格式来显示进程; a 显示所有用户的所有进程; x 显示所有进程,不以终端区分; r 显示运行中的进程; ww 避免详细参数被截断; 我们常用的选项是组合是aux 或lax,还有参数f的应用,ps aux 或lax输出的解释: USER 进程的属主; PID 进程的ID; PPID 父进程; %CPU 进程占用的CPU百分比; %MEM 占用内存的百分比; NI 进程的NICE值,数值大,表示较少占用CPU时间; VSZ 进程虚拟内存大小; RSS 驻留中页的数量; TTY 终端ID,STAT 进程状态 D 不间断休眠 R 正在运行中或准备运行的; S 处于休眠状态; W 进入内存交换(从内核2.6开始无效); Z 僵尸进程; N 优先级较低的进程 + 位于后台的进程组;,WCHAN 正在等待的进程资源; START 启动进程的时间; TIME 进程消耗CPU的时间; COMMAND 命令的名称和参数; 例子: #PS #PS aux | less #PS auxf | grep bash #PS aux ps001.txt #more ps001.txt,7.2.2 结束进程命令,当一个程序已经死掉,但又不能退出,这时就应该考虑应用结束进程的工具。 1. Kill命令 kill的应用是和ps 命令结合在一起使用。 kill 的用法: kill 信号代码 进程ID #Kill -l,信号代码可以省略;我们常用的信号代码是-9 ,表示强制终止;,2. killall命令 killall 通过程序的名字,直接杀死所有进程。 #killall 程序名 #ps aux | grep mozi* #killall mozilla-bin,7.2.3 前台和后台进程,前台就是指一个程序控制着标准输出和标准输入。 后台就是指一个程序不从标准输入接受输入,一般也不将结果输出到标准输出上。 一般地,用户键入一个命令,就已经启动了一个前台的进程。 对于非常耗时的进程,可以让进程在后台运行。从后台启动进程其实就是在命令的结尾处加上一个“&”号。,1. cron cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。 cron是一个守护进程,是一个标准的后台服务程序,cron读取系统设置来决定什么时候执行什么操作。 这个守护进程每分钟唤醒一次,并通过检查 crontab文件判断需要做什么。用户使用 crontab命令管理 crontab文件。cron守护进程常常是在系统启动时由 init 进程启动的。,crontab文件分为: 用户crontab文件 系统crontab文件 cron进程的工作原理是会先后搜索用户crontab文件和系统crontab文件,查看是否有需要执行的工作。,首先:cron命令会搜索/var/spool/cron目录,寻找以/etc/passwd文件中的用户名命名的crontab文件,被找到的这种文件将载入内存。 例如一个用户名为foxy的用户,他所对应的crontab文件就应该是/var/spool/cron/foxy。也就是说,以该用户命名的crontab文件存放在/var/spool/cron目录下面。 其次:cron命令还将搜索系统crontab文件/etc/crontab文件,查看这个文件中是否有需要做的事情。,cron启动以后,他将首先检查是否有用户设置了crontab文件,如果没有就转入“休眠”状态,释放系统资源。所以该后台进程占用资源极少。 上面简单介绍了cron的工作原理,不过cron命令的执行不必用户干涉,需要用户修改的是crontab文件中要执行的命令序列,修改用户crontab文件可以使用crontab命令。,crontab命令 crontab命令用于安装、删除或列出用户crontab文件。 用户把需要执行的命令序列放到crontab文件中以获得执行,每个用户都能有自己的crontab文件。 在/var/spool/cron下的用户crontab文件不能直接创建或直接修改,crontab文件是通过crontab命令得到的。,crontab命令的语法格式如下: crontab -u user file crontab -u user-l|-r|-e 第一种格式用于安装一个新的crontab 文件,安装来源就是file所指的文件,如果使用“-”符号作为文件名,那就意味着使用标准输入作为安装来源。,假设有个用户名为foxy,需要创建自己的一个crontab文件。首先使用文本编辑器建立一个新文件,然后向其中写入需要运行的命令和要定期执行的时间,然后存盘退出。 假设该文件为/tmp/test.cron,使用crontab命令来安装这个文件,使之成为该用户的crontab文件。键入: crontab /tmp/test.cron 这样一个crontab 文件就建立好了。 转到/var/spool/cron目录下面查看,发现多了一个foxy文件,这个文件就是foxy的crontab 文件。,-u 如果使用该选项,也就是指定了是哪个具体用户的crontab 文件将被修改。如果不指定该选项,crontab将默认是操作者本人的crontab ,也就是执行该crontab 命令的用户的crontab文件将被修改。 -l 在标准输出上显示当前的crontab。 -r 删除当前的crontab文件。 -e 使用VISUAL或EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。,crontab文件的格式 每个crontab条目包含六个字段: 分钟 小时 日 月 星期 执行的命令 分钟和小时的范围分别是 0-59 和 0-23, 日和月的范围分别是 1-31 和 1-12。 星期的范围是 0-6,0 表示星期日。星期也可以指定为 sun、mon、tue 等等。 第 6 个字段包含前 5 个字段之后的所有内容,它是要传递给 sh 的字符串。,5,15,25,35,45,55 16,17,18 * * * command 这就是表示任意天任意月,其实就是每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。,0,20,40 22-23 * 7 5-6 /home/ian/mycrontest.sh 我们的命令在 7 月的每个星期五和星期六晚上 10 点到午夜之间的第 0、20、40 分钟(每 20 分钟)执行。,/etc/crontab文件(系统crontab文件) SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly,真正的工作由 run-parts 命令执行,它运行 /etc/cron.hourly、/etc/cron.daily 等目录中的脚本;/etc/crontab 仅仅控制执行作业的时间。注意,这里的所有命令都作为根用户运行。,例1-设定用户crontab文件 crontab e */2 * * * * /bin/mkdir /root/testcron /etc/init.d/crond restart (重启cron)或 /etc/rc.d/init.d/crond restart 或 pkill crond;/usr/sbin/crond 例2-修改系统crontab文件 vi /etc/crontab 30 8 * * * root /sbin/reboot /etc/init.d/crond restart,2. at命令 有时候,需要只运行作业一次而不是定期运行。为此,应该使用 at 命令 。 语法: at -V -f file -mld TIME,说明: 1) at可以让使用者指定在TIME这个特定时刻执行某个程序或指令,但只执行一次。 2) atd是其进程服务。 3) 两个配置文件/etc/at.allow或/etc/at.deny 4) 任务保存目录/var/spool/at目录下,可编写。,参数: -m :即使程序/指令执行完成后没有输出结果,也要寄封信给使用者。 -f file :读取预先写好的脚本。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入文件后再一次读入。 -l :列出所有的指定(也可以使用atq而不用at l) -d :删除指定(也可以直接使用atrm而不用at d) -v :列出所有已经完成但尚未删除的指定,TIME的格式: HH:MM ex 04:00 在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此工作。 HH:MM YYYY-MM-DD ex 04:00 2005-12-03 强制规定在某年某月某日的特殊时刻进行该工作!,HH:MMam|pm Month Date ex 04pm December 3 强制在某年某月某日的某时刻进行! HH:MMam|pm + number minutes|hours|days|weeks ex now + 5 minutes ex 04pm + 3 days 在某个时间点再加几个时间后才进行。,/* 2008-8-7晚上最后一分钟提醒奥运开始 */ # at 23:59 08/07/2008 at echo 奥运会开始 /root/hello.txt at (CTRL + D,就会出现的字样,表示结束) job 13 at 2008-08-07 23:59,/* 三天后的下午5点执行/bin/ls */ at 5pm + 3 days /bin/ls $ at -f mycrontest.sh 10pm tomorrow,3. atq和atrm命令 万一下达了at之后才发现命令错误,那要怎么办呢?使用atq和atrm命令。 atq 列出用户的等待执行的作业;在用户是超级用户的情况下,列出所 有人的作业。 atrm 删除作业。,$ atq 16 Wed Jul 11 02:00:00 2007 a ian 17 Sat Jul 14 02:00:00 2007 a ian 15 Tue Jul 10 02:00:00 2007 a ian $ atrm 16 15 $ atq 17 Sat Jul 14 02:00:00 2007 a ian,4. 前后台切换命令 ctrl+z 如果你正在运行vi ,而且是在编辑一个重要数据文件,但是偏偏你想起有的程序需要留意,因此需要退出vi ,不过,你并不想这个时候储存退出 vi ,那么该怎么办呢? 把程序放到后台里去就可以了。,比如当你在执行编辑 /root/.bashrc 这个文件时,想要暂时离开,那么就直接在 vi 的命令模式下输入Ctrl加上 z (小写)按键,那么系统就会告诉你 “工作项目 1 在后台当中,而其状态为Stopped亦即是停止的状态!”,并且会离开 vi 进入到 command line 当中,等待使用者输入指令!,jobs 我们怎么知道目前所进行的后台下的工作有哪些呢?很简单,就是使用 jobs 就可以观察到了! # vi .bashrc 在 vi 当中的一般模式中键入Ctrl+z 1+ Stopped vi .bashrc # jobs 1+ Stopped vi .bashrc,fg和bg # fg %number # bg %number 参数说明: %:后面接数字,表示 jobs 的工作代号 number :就是工作代号 一般先使用 jobs 来看看后台程序的代号,然后以 bg %number 来使程序在后台中执行,而 fg %number 则是将代号为 number 的程序移动到前台来运行!,7.2.4 调整优先级,在Linux中,进程之间是竟争资源(比如CPU和内存的占用)的关系。这个竟争优劣是通过一个数值来实现的,也就是谦让度。高谦让度表示进程优化级别低。负值或0表示较高优先级,对其它进程不谦让,也就是拥有优先占用系统资源的权利。谦让度的值从 20到19。,目前硬件技术发展极速,在大多情况下,不必设置进程的优先级,除非在进程失控而疯狂占用资源的情况下,我们有可能来设置一下优先级。 nice 可以在创建进程时,为进程指定谦让度的值,进程的优先级的值是父进程SHELL的优先级的值与我们所指定谦让度的相加和。所以我们在用nice设置程序的优先级时,所指定数值是一个增量,并不是优先级的绝对值;,使用ps -l 来查看显示出来的进程的信息。 PRI 代表这个程序“可被执行的优先级”越小越早被执行! NI 代表这个程序的 nice 值! PRI(new) = PRI(old) + nice 一般使用者可用 nice 值 : 0 19 root 管理员可用 nice 值: -20 19,1. nice 语法:# nice -n number command 参数说明: -n :就是后面那个number即为nice值。 范例: # nice -n 5 redhat-config-users,2. renice 语法:# renice number PID 范例: root test /root# ps -aux root test /root# renice 5 234,7.3 系统监控,1. top命令 和ps 相比,top是动态监视系统任务的工具,top 输出的结果是连续的 ,格式为: top 选项,top命令显示的项目很多,默认值是每5秒更新一次,显示的各项目为: uptime 该项显示的是系统启动时间、已经运行的时间和三个平均负载值(最近1秒,5秒,15秒的负载值)。 processes 自最近一次刷新以来的运行进程总数。这些进程被分为正在运行的,休眠的,停止的等很多种类。,CPU states 显示用户模式,系统模式,优先级进程(只有优先级为负的列入考虑)和闲置等各种情况所占用CPU时间的百分比。优先级进程所消耗的时间也被列入到用户和系统的时间中,所以总的百分比将大于100。 Mem 内存使用情况统计,其中包括总的可用内存,空闲内存,已用内存,共享内存和缓存所占内存的情况。 Swap 交换空间统计,其中包括总的交换空间,可用交换空间,已用交换空间,常用选项: -b 以批量模式运行,但不能接受命令行输入; -c 显示命令行,而不仅仅是命令名; -d N 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒; -i 禁止显示空闲进程或僵尸进程; -n NUM 显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出; -p PID 仅监视指定ID的进程,交互式命令键: space 立即更新; k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15) i 禁止空闲进程和僵尸进程; l 切换到显示负载平均值和正常运行的时间等信息; m 切换到内存信息,并以内存占用大小排序; n 提示显示的进程数,比如输入3,就在整屏上显示3个进程;,r 把renice 应用到一个进程,提示输入PID和renice的值; s 改变两次刷新时间间隔,以秒为单位; t 切换到显示进程和CPU状态的信息; A 按进程的生命进行排序,最新进程显示在最前; M 按内存占用大小排序,由大到小; N 以进程ID大小排序,由小到大; P 按CPU占用情况排序,由大到小,2. du 命令 du命令用于查看文件或目录的磁盘使用情况。其格式为: du 选项 常用选项: a:显示全部目录和目录下每个文件所占的磁盘空间 b:大小用bytes来表示 (默认值为k bytes) h: 以用户易读的格式输出 k: 列出的值以 KB 輸出 m: 列出的值以 MB 輸出 c:最后再加上总计 (默认值) s:只显示各文件大小的总和,显示当前目录总的使用量(不显示目录中每个文件的使用量) # du s 显示目录/root和目录/boot总的使用量。 # du -s /root /home 以人类习惯的方式显示目录/root、目录/home和目录/boot总的使用量。 # du -sh /root /home /boot 显示/etc文件夹中使用磁盘空间最多的前十名。 # cd /etc;du -h | head -10,3. df命令 df 可以显示目前所有文件系统的最大可用空间及使用情况,其格式为: df 选项 常用选项: a:显示全部的文件系统和各分区的磁盘使用情况 h:以用户易读的格式显示 i:显示i -nodes的使用量 k:大小用k来表示 (默认值) m:使用Mbyte来表示 T:显示每个分区所属的文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人民大学版说课稿中职中职专业课旅游类74 旅游大类
- 7.2.3 基因的显性和隐性(说课稿)2025-2026学年八年级生物下册同步教学(人教版河北专版)
- 植物的虫害说课稿中职专业课-种植基础-农林类-农林牧渔大类
- 2025年老年康复护理题库及答案
- 2025年护理风险评估题库及答案
- doing做状语课件教学课件
- DOE基础知识培训课件
- Unit3 Are you Su Hai?story(教学设计)-译林版(三起)(2024)英语三年级英语上册
- 第三单元 课题1 分子和原子 说课稿-2023-2024学年九年级化学人教版上册
- (正式版)DB65∕T 4265-2019 《红枣简约化栽培技术规程》
- 湖北省部分学校2024-2025学年八年级上学期第一次月考数学试卷(含答案)
- 《资本论》读书报告:课件展示与分析
- 空气能热泵热水系统方案书
- 中药材种植中药材贮藏及养护技术措施
- 湘教版七年级数学上册第一次月考测试卷及答案
- 军训的心得(15篇)
- 安检员X射线机培训课件
- 陕西延安人文介绍
- 空调收购拆除合同范例
- 【MOOC】航天推进理论基础-西北工业大学 中国大学慕课MOOC答案
- 2024-2025年江苏专转本英语历年真题(含答案)
评论
0/150
提交评论