当前课程知识点:Linux系统管理 > 管好进程和服务 > 查看进程 > Video
各位好
在本讲中
我们要讨论的是
如何在Linux中查看进程
那么什么是进程呢
我们要先了解一下什么是指令和程序
计算机实际上可以做的事情
非常的简单
比如说计算两个数的和
再比如说在内存中找到某个地址等等
这些最基础的计算机动作
就被称为指令
所谓的程序
就是这一系列指令构成的集合
通过程序
我们可以让计算机完成复杂的操作
程序大多数时候
都被存储为可执行的文件
这样一个可执行文件就像是一个菜谱
计算机可以按照这个菜谱
作出可口的饭菜
那么 程序和进程的区别又是什么呢
进程是程序的一个具体实现
只有食谱没有什么用
我们总是要按照食谱的指点
真正的一步一步的执行
才能够做出一道菜
进程就是执行程序的过程
类似于按照食谱
真正去做菜的过程
同一个程序可以执行多次
每次都可以在内存中
开辟独立的一个空间来装载
从而产生多个进程
不同的进程
还可以拥有各自独立的输入输出接口
简单来说 我们可以这样理解
一个运行中的程序就可以被称为进程
一个运行着的程序
很可能包含着多个进程
比如宁波城市职业技术学院的网站
用的Web服务器是Apache服务器
当管理员启动服务后
很可能会有好多人来访问
也就是说
许多用户同时来请求httpd服务
Apache服务器将会创建有多个httpd进程
来同时处理多个用户的请求
Linux是一个多任务的操作系统
系统上经常同时运行着多个进程
在课程中
我们讨论进程的时候
我们既不关心这些进程是如何产生的
也不关心它们究竟是如何运作的
我们所关心的是
如何去管理和控制这些进程
让它们能够很好地为用户服务
要对进程进行控制和管理
首先要学会查看当前进程的状态
了解当前系统中进程处于何种状态
占用了哪些资源等等信息
这一些信息对我们系统管理员来说十分重要
ps命令就是Linux中最常用
也是非常强大的进程查看命令
ps就是“进程状态”process status英文的缩写
ps可以查看进程在当前时间点的状态
由于历史原因
ps的选项挺复杂的
兼容了好几种不同的系统语法格式
我们只讨论ps命令标准的Linux风格的用法
我们下面就用一个例子来说明
在何种情况下要使用ps命令
如何使用ps命令
我们编写了一个名为bad.sh的Shell脚本
bad.sh会根据您的输入产生特定数目的进程
并恶意占用计算机CPU资源
我们运行这个bad.sh
后面跟一个2
表示产生两个进程
执行了这个bad.sh后
主机的响应速度明显下降
这时我们就需要干预一下了
首先我们要找出“罪魁祸首”
也就是找出哪些进程
在不正常地大量占用CPU
这时就到了使用ps的时候了
首先我们可以用 ps的-A选项
来列出系统中所有的进程
显示的每一行均代表一个进程
可以观察到每行都有4个字段
每个字段均为进程的一个属性
其中PID是这个进程的ID
每个进程都有一个独一无二的PID
TTY是进程所使用的终端
“?”表示该进程不占用终端
TIME指的是进程运行持续的时间
CMD表示进程对应的程序名
但是我们没有看到我们想要看到的关键信息
也即进程占用主机CPU计算资源的比例
我们可以再添加一个-f选项
表示列出进程更加完整的信息
此时每行都列出了8个字段
增加的字段有UID
表示进程是由哪个用户运行的
PPID 表示进程父进程的PID
C 表示进程占用主机CPU计算资源的比例
STIME表示进程开始运行的时间
顺便提一句
您可能会疑惑 什么是父进程
但解释什么是父进程
已经超出了我们课程的内容了
如果您想进一步了解这些知识
可以参考《Linux程序设计》一书的第11章
还是回到我们的操作上来
我们注意到十分特殊的两行
这两行的C值异乎寻常地大
这两个进程几乎各占用了CPU的一半计算资源
显然
这两个进程就是我们要找的“罪魁祸首”了
此时就可以对这两个进程做点儿什么了
我们用kill命令结合进程的PID
来终止这两个进程
至于kill命令
我们会在《操纵进程》一讲中进行详细讨论
接下来我们再给出一些
ps命令的用法示例
ps命令经常用管道与grep命令
连接起来查找特定的进程
如在下面的例子中
我们将用ps命令和grep命令
来查找名称中带有sshd字样的进程
鉴于ps命令输出往往很长
经常需要用 | 管道与 less 命令
连接起来分页查看ps输出
ps还可跟上-l 选项
列出完整的进程信息
除了前面提到的8个字段外
ps还可以列出如下几类信息
F 代表了这个进程的旗标
S 代表这个进程的运行状态
PRI 代表这个进程的优先级
NI 代表这个进程的Nice值
ADDR 指出该进程在内存的哪个部分
SZ 代表这个进程占用内存的大小
WCHAN 代表这个进程是否正在运行当中
同样的
解释前面这些进程相关的概念
已经远远超出了我们课程的内容了
如果您想进一步了解这些知识
仍可以参考《Linux程序设计》一书的第11章
除了ps命令外
Linux还提供了另外一个
监视系统进程的工具top
与ps不同之处在于
top是动态监视系统进程的工具
在默认情况下
top命令每3秒钟刷新一次
接下来我们就用top来查看一下
当前系统运行的情况
top 界面分为两个部份
光标上面的部份显示关于系统整体的性能
光标下面的部份显示各进程信息
光标所在处是用来输入操作命令的
第一部分我们就不进行详细解释了
第二部分显示的是
系统中各进程的实时状态
其中PID表示进程id
USER表示进程发起者
PR 表示进程优先级
NI 表示nice值
VIRT表示进程使用的虚拟内存总量
单位kb
RES 表示进程使用的 未被换出的物理内存大小
单位kb
SHR 表示共享内存大小
单位kb
S 表示进程的运行状态
%CPU 表示上次更新到现在的
CPU时间占用百分比
%MEM 表示进程使用的物理内存所占百分比
TIME+表示进程使用的CPU时间总计
单位1/100秒
COMMAND 表示产生进程的命令名称
同样的
如果您想进一步了解top输出中的这个概念
可以参考《Linux程序设计》一书的第11章
默认进入top时
各进程是按照CPU的占用量来降序排序的
在光标处
我们可以键入 M
按内存占用情况降序排序
可以键入N以进程PID降序排序
键入P回到按CPU占用情况降序排序
键入R在当前基础上反向排序
也可通过”>”或” <”
向左或者向右改变排序关键字
如果我们当前是按CPU占用情况排序
键入”>”
现在已经按照内存占用来排序了
我们可以用q命令退出top
回到命令提示符
好
如何在Linux中查看进程
就讨论完了
谢谢您的观看
下次见
-Linux那些事儿
-选择合适的Linux版本
--微视频
-建立一台虚拟机
--微视频
-安装Linux系统
--微视频
-与Linux进行交互
--微视频
-用好帮助文档man
--Video
-关闭和重启Linux
--微视频
-初识Linux--初识Linux测试
-切换创建和删除目录
--微视频
-列出文件和文件属性
--Video
-拷贝、剪切、删除和创建文件
--Video
-文件链接
--Video
-归档压缩文件
--Video
-查找文件
--Video
-通配符
--Video
-查看文本文件
--Video
-管好文件--用好文件测试01
-管好文件--用好文件测试02
-重定向
--Video
-管道
--Video
-用好重定向和管道--用好重定向和管道测试
-vi 入门
--Video
-vi 初探
--Video
-用好vi--用好vi测试
-用户和用户组
--Video
-查看用户
--Video
-切换用户身份
--Video
-创建、修改和删除用户
--Video
-创建、修改和删除用户组
--Video
-部分让渡根用户权限
--Video
-用户管理配置文件
--Video
-管好用户--管好用户测试
-查看硬盘
--Video
-分区和格式化硬盘
--Video
-手动挂载和卸载分区
--Video
-开机自动挂载分区
--Video
-管好硬盘--管好硬盘测试
-查看和操纵网络接口
--Video
-配置TCP/IP网络参数
--Video
-管好网络--管好网络测试
-用RPM管理软件
--Video
-用yum管理软件
--Video
-为yum配置软件源
--Video
-管好软件包测试--作业
-查看进程
--Video
-操纵进程
--Video
-查看和操纵系统服务
--Video
-管好进程和服务--管好进程和服务测试
-用SSH协议远程联机
--Video
-为SSH服务器配置密钥认证登录
--Video
-管好远程联机服务器--管好远程联机服务器测试