1. 进程概念简介
进程(Process)是系统中进行资源的分配和调度的基本单位,是系统中的软件程序对某些数据集合的运行活动,是操作系统结构的基础。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。其定义如下:
狭义定义:进程是正在运行的程序的实例。
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。
2.启动一个进程
这里以启动一个 nginx
服务为例,首先使用 yum
命令安装 nginx
软件,命令如下:
yum -y install nginx
执行结果如下:
如上图所示,已经安装好了 nginx
之后,可以使用如下命令启动 nginx
服务:
service nginx start
执行结果如下:
启动 nginx
之后可以使用本机浏览器访问,但在访问之前需要先将 Linux 防火墙关闭,命令如下:
systemctl stop firewalldsystemctl status firewalld
执行结果如下图:
关闭防火墙之后,就可以通过浏览器查看到 nginx 软件服务展示的内容:
3.查看进程
在启动一个软件进程之后,可以使用 ps
命令查看启动软件的进程,命令如下:
ps -aux | grep nginx
执行结果如下图:
Tips:
ps -aux | grep nginx
中的ps
表示查看进程,aux
是进程跟的参数,|grep nginx
表示使用管道查看nginx
的进程。
4. ps 命令参数介绍
Centos操作系统中进程的状态有五种:
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps
命令可以用来查看进程相关信息,下面列举一些 ps
命令的参数:
ps 命令参数名称 | 功能与作用描述 |
---|---|
-a | 显示现行终端机下的所有程序,包括其他用户的程序。 |
-A | 显示所有程序。 |
-c | 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 |
-e | 此参数的效果和指定 A 参数相同。 例如: ps -e |
e | 列出程序时,显示每个程序所使用的环境变量。 |
f | 用ASCII字符显示树状结构,表达程序间的相互关系。 |
-H | 显示树状结构,表示程序间的相互关系。 |
-N | 显示所有的程序,除了执行ps指令终端机下的程序之外。 |
-s | 采用程序信号的格式显示程序状况。 |
-S | 列出程序时,包括已中断的子程序资料。 |
-u | 以用户为主的格式来显示程序状况。 |
-x | 显示所有程序,不以终端机来区分。 |
Tips:使用上述一个或者多个参数可以查看到指定的进程信息。
5. 实时监测进程
上面介绍的 ps
命令只能查看输入命令那一刻获取到的进程信息,而 top
命令可以实时监测进程信息,命令如下:
top
执行结果如下图:
如上图所示展示的是实时进程监测信息,下面对这些信息进程说明:
- PID:进程号或进程ID。
- USER:进程属主的名字。
- PR:进程的优先级。
- NI:进程的谦让度值。
- VIRT:进程占用的虚拟内存总量。
- RES:进程占用的物理内存总量。
- SHR:进程和其他进程共享的内存总量。
- S:进程的状态,
D
表示可中断的休眠状态,R
表示运行状态,S
表示休眠状态,T
表示跟踪状态或停止状态,Z
表示僵化状态。 - %CPU:进程使用的CPU时间比例。
- %MEM:进程使用的内存占可用内存的比例。
- TIME+:自进程启动到目前为止 CPU 时间总数。
- COMMAND:进程所对应的命令行名称,也就是程序启动时的程序名。
Tips:
top
命令展示出来的信息默认是按照%CPU
的值从大到小排序的。
6.小结
本小节介绍了,如何启动一个 nginx
程序进程,然后使用 ps -aux | grep nginx
命令查看 nginx
相关的进程信息,ps
和 top
命令都能查看进程信息,ps
查看的是输入命令之后那一刻的进程信息,而 top
命令可以实时监测进程信息,这些命令和参数在实际业务中特别重要,能快速看到那些软件应用的运行状态,它们占用的资源大小信息,从而可以很好地对系统和软件优化。