【一】进程概述
进程是正在运行的程序的实例,代表一个具有独立功能的程序及其数据集的一次执行。它是操作系统动态执行的基本单元,在传统操作系统中,进程既是资源分配的基本单位,也是执行的基本单位。
一个程序可以创建多个进程,进程是由内核定义的抽象实体,并为其分配执行所需的系统资源。从内核角度看,进程由用户内存空间和一系列内核数据结构组成。用户内存空间包含程序代码和所使用的变量,而内核数据结构则用于维护进程的状态信息。进程在内核数据结构中的记录包括各种标识号(IDS)、虚拟内存表、打开文件的描述符表、信号处理信息、资源使用及限制、当前工作目录等大量信息。进程的状态分为五种,如表所示:
| 状态 | 说明 | 
| 运行态 | 进程占用处理器,正在运行 | 
| 就绪态 | 进程具备运行条件,等待系统分配处理器 | 
| 阻塞态 | 进程不具备运行条件,等待某事件完成后再运行 | 
| 新建态 | 进程刚被创建,尚未进入就绪队列 | 
| 终止态 | 进程完成任务或出现不可恢复错误而终止 | 
【二】进程的类型
在Linux中,进程一般分为交互进程、批处理进程和监控进程三类,如表所示:
| 进程类型名称 | 说明 | 
| 交互进程 | 与用户交互频繁,需要等待键盘和鼠标操作。接收输入后需快速响应,否则用户会感到系统迟钝。 | 
| 批处理进程 | 不需与用户交互,常在后台运行,调度程序常对其怠慢。 | 
| 监控进程 | 独立于控制终端,周期性执行任务或等待事件发生。大多数Linux服务器由守护进程实现,如ftp服务器。 | 
交互进程是由Shell启动,可以在前台或后台运行。批处理进程与终端无关,是一组程序序列。监控进程又称守护进程,在后台运行,不受终端控制,用于执行特定系统任务。
【三】查看进程
在Linux系统下查看进程的常用命令有三个,各自功能不同,适用于不同场景。以下是详细介绍。
①ps 命令
ps命令是最常用的进程查看命令。通过执行ps命令可以查看当前运行的进程状态及资源占用情况,但ps命令显示的是瞬时状态,不是连续动态的。
ps命令选项参数值有6个,如表所示:
| 选项 | 说明 | 
| -a | 显示一个终端的所有进程,除了会话引线 | 
| -u | 显示当前用户进程及内存的使用情况 | 
| -x | 显示没有控制终端的进程 | 
| -l | 长格式显示详细信息 | 
| -e | 显示所有进程 | 
| -f | 格式显示,包括命令行 | 
执行ps命令后,会显示进程列表,如图所示:

进程列表字段说明如表所示:
| 字段 | 说明 | 
| USER | 产生该进程的用户 | 
| PID | 进程ID | 
| %CPU | 进程占用CPU资源的百分比 | 
| %MEM | 进程占用物理内存的百分比 | 
| VSZ | 进程占用虚拟内存的大小(KB) | 
| RSS | 进程占用实际物理内存的大小(KB) | 
| TTY | 进程运行的终端 | 
| STAT | 进程状态 | 
| START | 进程的启动时间 | 
| TIME | 进程占用CPU的运算时间 | 
| COMMAND | 产生此进程的命令名 | 
STAT——进程状态取值说明,如表所示:
| 字段 | 说明 | 
| D | 不可唤醒的睡眠状态,通常用于I/O操作 | 
| R | 正在运行 | 
| S | 可被唤醒的睡眠状态 | 
| T | 停止状态,可能是暂停或除错状态 | 
| W | 内存交换状态 | 
| X | 崩溃的进程 | 
| Z | 僵尸进程 | 
| < | 高优先级 | 
| N | 低优先级 | 
| L | 被锁定在内存中 | 
| s | 包含子进程 | 
| l | 多线程 | 
| + | 位于后台 | 
【例】列出所有在内存中运行的进程。
如果系统目前有许多正在运行的进程,可以用 more 命令逐步查看。在命令行模式下输入 "ps aux | more" 命令,具体操作如图所示:

②top 命令
top命令以动态方式查看进程状态,可通过按键不断刷新状态,独占前台直到终止。top命令提供实时CPU状态监控,可按CPU使用率、内存使用率、执行时间排序。
该语法中,top命令选项参数值有八个,如表所示:
| 选项 | 说明 | 
| -d | 改变显示的更新速度 | 
| -q | 无延迟显示速度 | 
| -c | 切换显示模式,显示执行档名称或完整路径 | 
| -S | 累积模式,累积已完成或消失的子进程CPU时间 | 
| -s | 安全模式,取消交互式指令 | 
| -i | 不显示任何闲置或无用的进程 | 
| -n | 更新次数,完成后退出top | 
| -b | 批次模式 | 
【例】显示系统进程并每3秒更新一次信息。
在命令行模式中,通过输入 top 命令可以显示进程信息,并按照设定的秒数更新信息。通过设置“-d”参数可以实现这个功能,输入的完整命令为“top -d 3”,要退出 top 进程查看,可以按 Ctrl+C 键,具体操作如图所示:

③pstree 命令
pstree命令以树形结构显示程序和进程之间的关系,适用于查看进程树之间的关系。
该语法中,pstree命令选项参数值有五个,如表所示:
| 选项 | 说明 | 
| -a | 显示启动每个进程的完整指令,包括路径和参数 | 
| -c | 不使用精简法显示进程信息 | 
| -p | 显示进程的PID | 
| -u | 显示进程对应的用户名称 | 
| -n | 根据进程PID号排序输出,默认以程序名排序 | 
【例】显示进程树并显示进程号。
在命令行模式中,输入“pstree -p”命令,其中“-p”参数用于显示进程的PID值。结果会以树状结构展示,可以清晰地看到进程之间的父子关系。具体操作如图所示:

【四】定时调度任务进程
crond是Linux下的守护进程,用于周期性地执行任务或等待事件,类似Windows的计划任务。操作系统安装后默认安装并自动启动crond进程。crond每分钟检查是否有任务执行,如果有则自动执行。
crontab是Linux系统的定时执行工具,可以在无人干预下运行作业,通过crond进程提供服务,crond每分钟检查任务执行情况。
crontab配置文件所在位置如表所示:
| 路径 | 说明 | 
| /var/spool/cron/ | 存放用户的crontab任务,每个任务以登录名命名 | 
| /etc/crontab | 存放系统管理员创建并维护的crontab任务 | 
| /etc/cron.d/ | 存放任何要执行的crontab任务 | 
crontab配置文件如图所示:

crontab时间参数说明如表所示:
| 时间 | 说明 | 
| minute | 一小时中的第几分钟(0~59) | 
| hour | 一天中的第几小时(0~23) | 
| 如果您的问题还未解决,可以 提交工单寻求帮助。 免费试用30+款云服务产品 即刻开始您的上云之旅免费试用 | 

) 
		  													 工信部备案号:
 工信部备案号:  公安部备案号:
 公安部备案号: