设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 814|回复: 0
收起左侧

LINUX系统中进程如何管理控制(一)

[复制链接]
发表于 2021-12-23 19:30:49 | 显示全部楼层 |阅读模式

上篇文章详细介绍了LINUX命令程序通过获取SHELL环境中的数据(此处的数据通常称为环境变量)来输出本机相应的配置数据,从而掌握在LINUX中SHELL环境的搭建技巧。那么,今天,这篇文章主要围绕linux系统中的进程展开描述。

                               
登录/注册后可看大图


程序与进程的区别
程序的概念:作为二进制文件,属于静态的;
进程的概念:作为程序运行的过程,属于动态的,具有生命周期及其运行状态特征。
说到“进程”,就会联想到“多任务”这个概念。目前几乎所有的操作系统都支持多任务,即操作系统初始化后可支持多任务多进程同时运行或无缝切换。Linux核心是通过使用进程来管理多任务。
在linux系统实际运行当中,服务器有时会变得呆滞,运行缓慢,或者某个程序停止响应。那么,在遇到上述情况如何处理或者应对呢?
进程的工作流程(原理)
当linux系统启动时,linux内核先将一些它自己的活动初始化为进程,然后运行init程序。紧接着,init程序依次地运行一系列的shell 脚本(一般位于/etc目录路径),它们可启动所有的系统服务。当然,许多系统服务将以守护(daemon)程序的形式出现,守护程序仅在后台运行,即使linux系统没有登录,linux系统也会在后台运行一些例行事务。
linux内核维护着所有进程的信息,以此来保持所有任务井然有序。
进程的查看--ps命令(静态查看)
ps,全称process status。先简单举个例子来介绍ps 命令:
[root@linuxProbe ~]$ ps
PID    TTY     TIME         CMD
5198   pts/1    00:00:00      bash
10129   pts/1   00:00:00      ps
//表示有两个进程,分别为进程5198 和进程10129,各自对应的命令是bash命令和ps命令。
// TTY 全称“Teletype”(直译电传打字机),进程的控制终端。
// TIME 字段表示进程所消耗的CPU的时间数量。
默认情况下,ps命令不会显示更多的进程信息,仅仅是列举与当前会话相关的进程信息。那么为了得到更多关于系统运行状态的信息,我们需要将ps命令加上一些选项参数:
[root@linuxprobe ~]$ ps x
PID   TTY   STAT  T ME  COMMAND
2799  ?     Ssl    0:00   /usr/libexec/bonobo-activation-server –ac
2820  ?     Sl     0:01   /usr/libexec/evolution-data-server-1.10 –
//ps命令的常见参数以及作用如下表所示:
参数
作用
-a
显示所有进程(包括其他用户的进程)
-u
用户以及其他详细信息
-x
显示没有控制终端的进程

//STAT全称“state”,代表了进程当前状态,如下表所示:
状态
代表含义
R(运行)
进程正在运行或在运行队列中等待
S(中断)
进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
D(不可中断)
进程不响应系统异步信号,即便用kill命令也不能将其中断
Z(僵死)
一个已经终止的子进程,但是它的父进程还没有清空它。(父进程没有把子进程从进程表中删除)
T(停止)
已停止,进程收到停止信号后停止运行。
<
高优先级进程。这种状态下,可能会授予进程更多、重要的资源,更多的CPU 时间数量。具有高优先级的进程据说是不好的(less nice),因为它占用了比较多的CPU 时间,这样就给其它进程留下很少时间。
N
低优先级进程。只有当其它高优先级进程被服务了之后,才会得到处理器时间。

除了上面7种常见的进程状态,还有被锁进内存(L)、包含子进程(s)以及多线程(l)这3种补充形式,在此不再一一描述了。
ps 命令能够列举许多运行状态的详细信息,弊端是它只能提供ps 命令执行时刻的机器状态快照,也就是相对静态的,不能实时滚动最新数据。

进程的查看--top命令(动态查看)
linux 中top命令能够动态地查看其系统状态,《Linux就该这么学》的作者刘遄在其书籍中写道:完全可以将它看作是Linux中“强化版的Windows任务管理器”。不容置疑,top命令确实一个相当好用的性能分析工具。

                               
登录/注册后可看大图


top命令执行结果的前5行,概况了系统整体的统计信息,其所代表的含义如下表所示:
行号
字段
意义
1
top
程序名
18:35:07
当前时间
up 36 min
这是正常运行时间。它是计算机从上次启动到现在所运行的时间。这个例子显示系统已经运行了36分钟
1 user
有1个用户登录系统
load average
加载平均值是指,等待运行的进程数目,也就是说,处于可以运行状态并共享CPU 的进程个数。这里展示了三个数值,每个数值对应不同的时间段。第一个是最后0.01秒的平均值,下一个是前0.05的平均值,最后一个是前0.03的平均值。各项平均值都低于1.0,则表明运行状态良好
2
Tasks
列举了进程总数和这些进程的各种状态(运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数)
3
Cpu(s)
这一行描述了CPU 正在进行的活动的特性。依次代表的含义是用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“99.9 id”意味着有99.9%的CPU处理器资源处于空闲。
4
Mem
物理内存的使用情况(依次代表物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量)
5
Swap
交换分区(虚拟内存)的使用情况(依次代表虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量)

已经到深夜,关于linux系统中的进程的描述暂时描述到这里,这篇文章详细介绍了静态查看ps命令和动态查看top命令,关于进程的介绍还有如何控制进程(中断、停止等),下篇文章再补充吧。



您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-22 19:07 , Processed in 0.050671 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表