Anda di halaman 1dari 52

Linux 进程管理与系 统监视


基础内 容介绍 程 第
案例 一及其 相关 内容 管 七

案例 二及其 相关 内容 章

课程 总结与 操作 实训 系

课后习 题


Linux 进程管理与系 统监视

本章教学目标:

掌握进程管理的命令、 cron 的使用


熟悉进程的启动方式
了解进程定义、分类
Linux 进程管理与系 统监视

难点:
Linux 进程管理
重点:
掌握如何使用进程管理命令及任务自动化操作。
关键词:
进程 cron
Linux 进程管理与系 统监视

7-1 进程的基本概念
1 、进程的定义
• 是指一个具有独立功能的程序的一次运行
过程,也是系统进行资源分配和调度的基
本单位。

• 即每个程序模块和它执行时所处理的数据
组成了进程。
Linux 进程管理与系 统监视

2 、进程和程序的区别
• 进程是动态的,而程序是静态的
• 进程是有生命的,而程序是永久的
• 一个程序可以包含若干个进程
• 一个进程可以包含若干个程序(例:调用
别的程序)
Linux 进程管理与系 统监视

3 、进程的基本状态及其转换
( 1 )进程的基本状态
• 运行态( running ) : 在 CPU 上运行
• 就绪态( ready ):获得了 CPU 外的一切资源
,可以随时被 CPU 调用
• 阻塞态( blocked ):也叫等待态,正在等待
某一事件的发生
Linux 进程管理与系 统监视

( 2 )进程间的转换
Linux 进程管理与系 统监视

4 、进程的类型
• 交互进程:由 shell 启动 , 可以工作在前 /
后台
• 批处理进程:不需要与终端相关,提交在
等待队列的作业
• 守护进程: shell/linux 系统自动启动,工
作在后台,用于监视特定服务
Linux 进程管理与系 统监视

5 、进程 启动 方法
进程的启动是由于执行一个程序而
启动的,在 Red Hat Linux 9.0 系统中启动进
程的方式有两种 :
(1)手工启动
• 前台:直接输入程序名(如 :#vi )
• 后台:程序名后加 & (如 :#vi& )
(2)调度启动
• 系统在指定时间运行指定的程序,可用
at , bach 和 cron 调度。
Linux 进程管理与系 统监视





Linux 进程管理与系 统监视

给出案例
案例一
1. 利用 VI 手工启动两个进程在后台运行;
2. 用 VI 编辑一个文件,并转入到后台运行;
3. 把在后台运行中最前面的 VI 进程调入到前台运行;
4. 杀死中间的一个 VI 进程;
5. 一次性全部杀死所有的 VI 进程;
Linux 进程管理与系 统监视

与案例有关的内容分析

7-2 进程管理的常用命令
1 、 ps
• 功能:静态显示系统进程信息
• 格式: ps [ 参数 ]
• 参数:
 -a // 显示所有进程(不包括没有终端的进程)
 -u // 显示用户名和启动时间
 -x // 显示没有终端的进程
 -e // 显示所有进程(不显示进程状态)
Linux 进程管理与系 统监视

• 实例:
 # ps     // 显示当前用户进程
 # ps –aux // 显示所有进程信息
Linux 进程管理与系 统监视

# ps –aux
USER PID %cpu %mem vsz rss tty stat start time command
root 1   0.0 0 .3 1096 476    ?   s    18:20   0:04
init
…………………..
说明:以上输出的信息包括
USER 进程的启动用户
PID 进程号(进程的唯一标识)
% CPU 占 CPU 的百分比
% MEM 占用内存百分比
VSZ 占用的虚拟内存大小
RSS 占用的物理内存大小
TTY 进程的工作终端(?表示没有终端)
STAT 进程的状态:
R: 正在执行中
S: 静止状态
T: 暂停执行
Time 占用的 cpu 的时间
Command 运行的程序
Linux 进程管理与系 统监视

2 、 top
• 功能:动态显示系统进程信息
• 格式: top
• 实例:
 # top ( 默认每5秒钟刷新一次 )
 top 的操作命令 :
• help // 获取 top 的帮助
• k PID // 终止指定的进程
• q // 退出 top
Linux 进程管理与系 统监视

3 、 kill
• 功能:终止正在运行的进程或作业
• 格式: kill   [ 选项 ] PID
• 选项: -9 // 当无选项的命令不能终止进程时
,可强行终止指定进程

• 实例:  
 # kill -9 3
 # kill -9 3 5 8 // 一次杀死 3,5,8 多个进程
Linux 进程管理与系 统监视

4 、 killall
• 功能:终止指定程序名的所有进程
• 格式:
killall -9 程序名
• 实例:
 #killall -9 vsftpd
// 杀死所有对应 vsftpd 程序的进程
Linux 进程管理与系 统监视

5 、作业的前后台操作
(1) jobs
• 功能:显示当前所有作业
• 格式: jobs
• 实例:
 # jobs
Linux 进程管理与系 统监视

(2) fg
• 功能:把后台的作业调入前台运行
• 格式: # fg [ 作业编号 ]
• 实例:
 # fg // 队首的作业调入前台运行
 # fg 2 // 将队列中的 2 号作业调入前台运行
Linux 进程管理与系 统监视

( 3 ) bg
 功能:将前台作业或进程切换到后台运行
 格式: bg [ 作业编号 ]
• ctrl+z 将前台程序转入后台停止运行
• ctrl+c 将终止前台程序的运行
 实例:
• #bg // 将队首的作业调入后台运行
• #bg 3 // 将 3 号作业调入后台运行
Linux 进程管理与系 统监视

6 、 nice
功能: 指定将启动 进程的优先级 。
格式: nice [- 优先级值 ] 命令

实例 : # nice -5 ftp
// 启动 ftp 程序,其优先级为 5
Linux 进程管理与系 统监视

7 、 renice
功能:修 改运 行中的 进程 的优先 级。
格式: renice - 优先级值 参数
主要参数:
-p 进程号 // 修改指定进程的优先级
-u 用户名 // 修改指定用户所启动进程的默认优先级
-g 群组号 // 修改指定群组中所有用户启动进程的默认优先

实例 : # renice -5 -u helen
// 将 helen 用户的进程优先级调高为 -5
Linux 进程管理与系 统监视

分组操 作
…………………………

点评、 操作演示 :
………………………………………..
Linux 进程管理与系 统监视





Linux 进程管理与系 统监视

案例二
1. 把当前时间改为 2009 年 3 月 16 日 10 点 30 分 30 秒;
2. 利用 at 设置一个任务自动化,在当天 11 : 00 钟,在根
目录下自动创建一个 abc 目录,并进入到 abc 目录中,建
立一个空的文件 test ,同时对该文件进行打包成 test.tar;
3. 让该系统在每周的 1 、 3 、 5 下午 17 : 30 自动关闭该系
统;
4. 在该系统在每月的 16 号自动启动 smb 服务;
Linux 进程管理与系 统监视

与案例有关的内容分析

7-3 进程调度
1 、 at ( 后台运行一次 )
• 功能:安排系统在指定时间运行程序
• 格式: at [ 参数 ] 时间
• 参数:
 -d // 删除指定的调度作业
 -m // 任务结束后会发送 mail 通知用户
 -f 文件名 // 从指定文件中读取执行的命令
 -q [a-z] // 指定使用的队列
 -l // 显示等待执行的调度作业
Linux 进程管理与系 统监视

• 时间的表示方法:
 绝对表示方法:
midnight // 当天午夜
moon // 当天中午
teatime // 当天下午 4 点
hh:mm mm/dd/yy
Linux 进程管理与系 统监视

 相对表示方法:
now+n minutes // 从现在起向后 n 分钟
now+n days    // 从现在起向后 n 天
now+n hours   // 从现在起向后 n 小时
now+n weeks   // 从现在起向后 n 周
Linux 进程管理与系 统监视

举例说明
 要找出系统所有以 txt 为后缀名的文件并且进行打印。打印结
束后给用户 liyang 发出邮件通知取件。指定时间为三月二十
五日 18 点。
首先键入 $at 18:00 3/25/09
然后系统出现 at> 提示符,等待用户输入进一步的信息,
也就是需要执行的命令序列:
at>find / -name “*.txt”|lpr
at>echo“liyang : All texts have been printed. You can
come here and take them. Hava a nice day!”|mail –s
“job done” liyang
at <EOF>
Warning: command will be executed using /bin/sh
Job 1 at 2009-03-25 18:00
Linux 进程管理与系 统监视

• 实例:
 # at   21:00   3/21/2009
>cd /back/
>tar -cvf tmp.tar /tmp
>init 0
ctrl+d // 结束作业
Linux 进程管理与系 统监视

与 at 相关的还有 atq 显示队列中的作业信息命令和


atrm 删除队列作业的命令,如下例所示。
// 显示 at 等待队列的作业信息
#atq
1 2007-01-25 23:00 a root
2 2007-01-25 00:00 a root
// 删除 at 等待队列中序号为 1 的作业
[root@localhost /]#atrm 1
Linux 进程管理与系 统监视

2 、 batch 和 at 命令功能几乎相同。
3 、 cron
• 功能:安排作业让系统在指定时间周期运行
• 原理: cron 进程,每隔一分钟,检查
/var/spool/cron 目录下用户提交的作业文件中
有无任务需要运行
• 配置:
Linux 进程管理与系 统监视

crontab 文件中时间和命令的输入
 该文件中每行包括六个域,其中前五个域是指定命令
被执行的时间,最后一个域是要被执行的命令。每个
域之间使用空格或者制表符分隔
minute hour day-of-month month-of-year day-of-week commands

• 说明:
可以使用通配符“ *”: 表示任何时间
每个域的时间值可以是多个,时间值之间用逗号隔开

5,15,25,35,45,55 16,17,18 * * * command

00 15 * * 1,3,5 shutdown –r +5
Linux 进程管理与系 统监视

( 1 )建立 crontab 文件
• # vi /root/root.cron
• 格式:分 时 日 月 星期 要运行的
程序
• 实例: 0 12 1 1 * /sbin/shutdown
–r now
• 说明:数字表示具体时间 ; * 表示任何时间 ;
0-23/2 表示每隔 2 小时,即 :0:25,2:25,4:25 ;
1 , 3 , 5 :表示多种用“,”隔开。
Linux 进程管理与系 统监视

( 2 )运行 crontab 命令
• 功能:维护用户的 crontab 配置文件
• 格式: crontab [ 参数 ] 文件名
• 参数:
 -u 用户名 // 指定具体用户的 cron 文件
 -r // 删除用户的 crontab 文件
 -l // 显示用户的 cron 文件
 -e // 编辑用户的 crontab 文件
Linux 进程管理与系 统监视

• 实例:
 # crontab   /root/root.cron  
// 建立当前标准格式用户 crontab 文件
 # crontab –r  
// 删除当前用户的 cron 文件
Linux 进程管理与系 统监视

 配置案例:
• 要求: root 用户在每周 2,4,6 早上 3 点启动系统
• 配置过程:
 # vi /root.cron (以 root 用户登录)
0 3 * * 2,4,6 /sbin/shutdown -r now
 # crontab /root.cron
Linux 进程管理与系 统监视

crontab 命令提交的调度任务存放在
/var/spool/cron 目录中,并且以提交的用户
名称命名,等待 crond 进程来调度执行。
Linux 进程管理与系 统监视

 注意:
( 1 ) /etc/at.deny 和 /etc/at.allow 文件
用于控制用户运行 at 的任务可以通过
/etc/at.deny 和 /etc/at.allow 文件控制执行 at 命令
的用户, at.deny 存放禁止执行 at 命令用户名;
at.allow 存放允许 at 命令的用户名。 // 禁止
user1 用户执行 at 命令安排调度任务
#vi /etc/at.deny
// 向文件中添加如下内容
user1
Linux 进程管理与系 统监视

系统管理的其它命令
1. last
功能:显示先前用户登录信息
格式: # last [ 参数 ]
参数:
-n // 列出前 n 行
username // 显示指定用户的登录信息
实例:
#last root // 显示超级用户登录信息
Linux 进程管理与系 统监视

2. date
功能:显示或设定系统日期、时间
格式:
#date [MMDDhhmm[CC]YY[.ss]]
实例:
# date // 显示日期和时间
# date 102310302008.30
// 设定日期和时间
Linux 进程管理与系 统监视

3. time
功能:测定执行特定的命令所用的时间等信息
格式: # time <COMMAND>
实例:
# time ls
Linux 进程管理与系 统监视

4. whoami
功能: 显示当前登录的用户名
实例 :
#whoami
Linux 进程管理与系 统监视

5. id
功能: 显示当前用户的详细 ID
格式: # id 〔参数〕
参数:
-a 显示所有 ID 信息
-u 显示 UID
-g 显示用户所属组的 GID
-G 显示用户附加组 GID
实例:
# id
# id -u
Linux 进程管理与系 统监视

6. cal
功能:显示日历
格式: # cal [ 参数 ] [CCYY]
参数:
-y // 指定哪一年的日历
实例:
# cal // 默认显示本年本月
# cal -y 2000
Linux 进程管理与系 统监视

分组操 作
…………………………

点评、 操作演示:
………………………………………..
Linux 进程管理与系 统监视





Linux 进程管理与系 统监视

归纳与总结

通过本 节课的学习 我们要掌握以 下内容:


进程管理的命令、 cron 的使用
进程的启动方式
进程定义、分类
Linux 进程管理与系 统监视

操作实 训
1. 利用 VI 在前台打开一个文件,利用快捷键把该
进程转入到后台;
2. 当前时间延迟 10 分钟,让系统在根目录下以自己
的姓名创建一个目录,并在该目录中建立一个文件

3. 让系统每周三自动重启;
4. 把时间设置推迟 30 分钟,并查看当天是周几、当
天是这一年的第多少天;
Linux 进程管理与系 统监视





Linux 进程管理与系 统监视

课后习 题
1 、 ps 命令显示结果中 STAT 的 s 代表  B
A 、运行 B 、休眠 C 、终止
D 、挂起
2 、终止一个前台进程,可用  A
A 、 ctrl+c B 、 ctrl+z C 、 alt+c D 、 alt+z
3 、希望把某个在后台挂历起的作业转到后台继续运行,可使用  C
A 、 nice B 、 fg C 、 bg D 、 renice
4 、 at 8:00 pm 是指  D
A 、当天早 8 点 B 、每天早 8 点 C 、每天晚上 8 点
D 、cron
5 、在 当天晚 8 点 00 07 * * 2 , 4 , 6 则 2 , 4 ,6 D
中若指定 代表
A 、每月的 2,4,6 B 、每天的 2,4,6
C 、每小时的 2,4,6 D 、每周的 2 , 4 , 6
Linux 进程管理与系 统监视

6 、 linux 中自动安排任务可使用  ABC


A 、 at B 、 batch C 、 cron D 、 time

7 、在 shell 中,当用户准备结束登录对话进程时,可用哪些命令
A 、 logout B 、 exit C 、 ctrl+d D 、 shutdown
 ABC

8 、一般关机的命令有  ABCD
A 、 init 0 B 、 shutdown now C 、 halt
D 、 poweroff